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 跨域 实现思路及相关解决方案

08: CORS实现跨域请求

CORS原理及实现

即使服务器已实现 cors,默认情况下 Chrome 是不是也不允许使用 cors?

在 Express/Node 应用程序中比较/实现 `app.use(cors(corsOptions));` 和 `app.options('*', cors(corsOptions));`

CORS Java 服务器端实现