C# 实现CORS
1.IE对CORS的实现
ie8中引入了XDR(XDomainRequest),这个对象与XHR类似,但能实现安全可靠的跨域通信。CORS的核心思想就是使用自定义的HTTP头部让浏览器
和服务器进行沟通。
浏览器:
在请求的头部会附加Origin.
var xdr = new XDomainRequest();
xdr.onload = function () {
alert(xdr.responseText);
};
xdr.onerror = function () {
};
xdr.open("get", "XXX");
xdr.send("111");
服务器端:
根据请求的Origin决定这个请求是否可以接受,如果可以接受,就在Access-Control-Allow-Origin回发相同的源信息,如果是公共资源,回发"*"。
如果头部信息不匹配,浏览器就会驳回请求。
response.AddHeader("Access-Control-Allow-Origin", "*");
2.JSONP
浏览器端:
var script = document.createElement("script");
script.src = "xxx?callback=hello";
document.body.insertBefore(script,document.body.firstChild);
服务器端:
string responses = string.Format("\"a\":\"1\"");
string call = "hello" + "({" + responses + "})";
response.Write(call);