将网页设置为允许 XMLHttpRequest 跨域访问

在非IE下,使用XMLHttpRequest 不能跨域访问,

除非要访问的网页设置为允许跨域访问。

将网页设置为允许跨域访问的方法如下:

Response.AddHeader("Access-Control-Allow-Origin", "*");

或指定域名下可以访问:

Response.AddHeader("Access-Control-Allow-Origin", "http://www.163.com:80");

在返回的响应信息中,使用 Access-Control-Allow-Origin 头来控制哪些域名的脚本可以访问该资源。如果设置 Access-Control-Allow-Origin:*,则允许所有域名的脚本访问该资源。如果有多个,则只需要使用逗号分隔开即可。

注意:在服务器端,Access-Control-Allow-Origin 响应头中的端口信息不能省略。

参考:http://www.chinaz.com/program/2010/0111/103511_2.shtml

如果整个项目都是要允许跨域的,一个一个的页面加这个代码,肯定很烦,即便它只有一句,所以如果是整个项目都需要跨域,我们可以这样:

在global.asax的Application_BeginRequest方法中写上如下代码即可:

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin","*");

if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,PUT,DELETE");
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, Accept");
    HttpContext.Current.Response.End();
}

参考地址:http://stackoverflow.com/questions/17323350/access-control-allow-origin-with-multiple-domains

原文地址:https://www.cnblogs.com/ymworkroom/p/6496955.html