首页 新闻 会员 周边

如何POST跨域请求

0
悬赏园豆:50 [已解决问题] 解决于 2015-09-07 16:29

asp.net如何跨域POST请求 别人提供一个域名的公共接口

我用

$.ajax({
    url: "http://www.test.cn/API/Index/BorrowList",
    type:"POST",
    dataType: "json",
    data: jsondata,
    success: function (data) {
        alert(data);
    }
});

这样的方式调用好像不行没有返回值

问题补充:

我不要jsonp,因为我请求的网站是别人写好的POST接口的,我没办法控制,所以JSONP不行

绝恋天下的主页 绝恋天下 | 初学一级 | 园豆:73
提问于:2015-09-07 13:43
< >
分享
最佳答案
0
    /**
     * Jsonp for get data form backend
     * */
    $.JsonpRequest = function(url, successHandler) {
        $.ajax({
            type : "GET",
            async : false,
            url : url,
            dataType : "jsonp",
            jsonp : "jsonpCallback",
            success : function(data) {
                successHandler(data);
            },
            error : function() {
                //todo
            }
        });
    };

项目里摘出来的,可以直接运行,后端直接这样返回json 字符串即可   jsonpCallback (" + json + ")

收获园豆:35
Jared.Nie | 小虾三级 |园豆:1940 | 2015-09-07 15:16

我不要jsonp,因为我请求的网站是别人写好的POST接口的,我没办法控制,所以JSONP不行

绝恋天下 | 园豆:73 (初学一级) | 2015-09-07 15:21

@绝恋天下: 第二个回答不是给你了个解决方案了嘛

MrNice | 园豆:3450 (老鸟四级) | 2015-09-07 15:34

@MrNice: 额我想通过ajax直接实现呢······难道就没办法了吗?

绝恋天下 | 园豆:73 (初学一级) | 2015-09-07 15:35

@绝恋天下: 你前端使用ajax把数据提交到当前项目的后台api,后台api中通过httpwebrequest请求你要跨域的资源,返回,想直接通过ajax post跨域那就只能在你要请求的网站上做文章了,但是还不一定成功

MrNice | 园豆:3450 (老鸟四级) | 2015-09-07 15:41

@MrNice: 嗯···那基本直接在后台调用跨域API,然后ajax调用自己网站的方法,做个中转了

绝恋天下 | 园豆:73 (初学一级) | 2015-09-07 15:44
其他回答(6)
1

你自己在后台调用这个接口再通过你自己项目的接口返回不就行了嘛

收获园豆:15
MrNice | 园豆:3450 (老鸟四级) | 2015-09-07 13:56
0

参考:jQuery使用ajax跨域获取数据  

var webMethod = "http://localhost:54473/Service1.asmx/HelloWorld"; 
    jQuery.support.cors = true;
    //之前没有加这句老是提示no transport,我没去深想。
        $.ajax
        ({
            
            type: "POST",
            contentType: "application/x-www-form-urlencoded",
            dataType: "html",
            url: "http://www.*****.com",  //这里是网址
            success:function(data){alert(data);},
            timeout:30000, 
            error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(errorThrown);
            }
        });
橙子在上海 | 园豆:396 (菜鸟二级) | 2015-09-07 14:00

你这个有引用啥插件吗,要是直接Jquery这样写是不能成功的

支持(0) 反对(0) 绝恋天下 | 园豆:73 (初学一级) | 2015-09-07 15:22

支持(0) 反对(0) 绝恋天下 | 园豆:73 (初学一级) | 2015-09-07 15:30

这个不行的····提交失败的

支持(0) 反对(0) 绝恋天下 | 园豆:73 (初学一级) | 2015-09-07 15:31
1

别想着直接ajax 直接post过去了。。。换个思路。。你既然是asp.net 直接 用服务端写个方法 post对方接口,然后 你前端再用ajax 调用你写的接口。

jsasjs | 园豆:228 (菜鸟二级) | 2015-09-07 18:57
0

入侵别人的网站,然后把自己的写好的脚本 部署在别人网站里面,然后自己的站点页面引用这个js  就不会有跨域问题了

键盘上的牛仔 | 园豆:30 (初学一级) | 2015-09-08 09:18
0

顶 jsasjs,可以参考:http://www.cnblogs.com/digdeep/p/4198643.html

digdeep | 园豆:202 (菜鸟二级) | 2015-09-08 11:17
0

参考

http://www.cnblogs.com/davidwang456/p/3977627.html

ctlcomydl | 园豆:204 (菜鸟二级) | 2015-09-08 12:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册