首先什么是跨域,访问的url中主机名不同,端口不同,协议不同(http和https)都会出现跨域问题。
如何解决跨域问题,使用jsonp
ajax写法:
$.ajax({
type: "post",
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "successcallback",
url: "http://localhost:15309/MainHandler.ashx?action=InitSelect_ProductType",
complete: function () {
},
success: function (result) {
var vvv = result;
},
error: function () {
}
});
后端写法:
var result = "handle result";//返回的数据
result = "successcallback" + "(" + CommTools.ObjectToJson(result) + ")";
配置文件:
在system.webServer节点下添加
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/>
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>