asp.net如何跨域POST请求 别人提供一个域名的公共接口
我用
$.ajax({
url: "http://www.test.cn/API/Index/BorrowList",
type:"POST",
dataType: "json",
data: jsondata,
success: function (data) {
alert(data);
}
});
这样的方式调用好像不行没有返回值
/** * 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 + ")
我不要jsonp,因为我请求的网站是别人写好的POST接口的,我没办法控制,所以JSONP不行
@绝恋天下: 第二个回答不是给你了个解决方案了嘛
@MrNice: 额我想通过ajax直接实现呢······难道就没办法了吗?
@绝恋天下: 你前端使用ajax把数据提交到当前项目的后台api,后台api中通过httpwebrequest请求你要跨域的资源,返回,想直接通过ajax post跨域那就只能在你要请求的网站上做文章了,但是还不一定成功
@MrNice: 嗯···那基本直接在后台调用跨域API,然后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); } });
你这个有引用啥插件吗,要是直接Jquery这样写是不能成功的
这个不行的····提交失败的
别想着直接ajax 直接post过去了。。。换个思路。。你既然是asp.net 直接 用服务端写个方法 post对方接口,然后 你前端再用ajax 调用你写的接口。
入侵别人的网站,然后把自己的写好的脚本 部署在别人网站里面,然后自己的站点页面引用这个js 就不会有跨域问题了
顶 jsasjs,可以参考:http://www.cnblogs.com/digdeep/p/4198643.html
参考
http://www.cnblogs.com/davidwang456/p/3977627.html