C# 实现CORS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
以上是关于C# 实现CORS的主要内容,如果未能解决你的问题,请参考以下文章
即使服务器已实现 cors,默认情况下 Chrome 是不是也不允许使用 cors?
在 Express/Node 应用程序中比较/实现 `app.use(cors(corsOptions));` 和 `app.options('*', cors(corsOptions));`