跨域Ajax调用的首选方法是跨站资源共享(CORS).与Jsonp不同,CORS不会利用安全漏洞,而且,它是由特殊的HTTP的消息头告诉浏览器允许跨域AJAX调用,避免了“hacks",让Cors方法更加简单,因为这样就不再需要javascript回调函数或者自定义操作结果类。
也有别的方法,如可以给网站的全部请求消息添加Http消息头,只要在配置文件system.webServer>httpProtocol>customHeaders节点下设置以下代码:
接着发送普通的jq ajax请求即可:
$.ajax({
type:"get",
url:"http://***/***/**",
dataType:"json",
success:function(json){
//do something
},
error:function(xtr,status,errthrow){
alert("error:"+errthrow);
}
});
为了启用cors支持,只需要给每个需要cors支持的请求消息设置Access-Control-Allow-Origin header值即可。可以把允许访问的域名设置成“白名单”,或者使用“授权访问”任何域名:
HttpContext.ZResponse.AppendHeader("Access-Control-Allow-Origin","*");
也有别的方法,如可以给网站的全部请求消息添加Http消息头,只要在配置文件system.webServer>httpProtocol>customHeaders节点下设置以下代码:
<system.WebServer>
<httpprotocol>
<customheaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customheaders>
</httpprotocol>
</system.webserver>
接着发送普通的jq ajax请求即可:
$.ajax({
type:"get",
url:"http://***/***/**",
dataType:"json",
success:function(json){
//do something
},
error:function(xtr,status,errthrow){
alert("error:"+errthrow);
}
});