ASP.NET的WEBAPI跨域访问设置方法
1、首先要在WEB.CONFIG文件的<system.webServer>节点中加入以下节点及参数
<httpProtocol>
<customHeaders>
<!--响应类型(值为逗号分隔的一个字符串,表明服务器支持的所有跨域请求的方法)-->
<add name=" Access-Control-Allow-Mlethods" value="GET, POSI, PUI, DELETE, OPTIONS" />
<!--响应头设置(Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain) -->
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
<!--如果设置Access-Control-Allow-0rigin:*,则允许所有域名的脚本访问该资源-->
<add name="Access-Control-Allow-0rigin" value="*" />
<!--<add name="Access-Control-Allow-0rigin" value="http://domain1.com,http://domain2.com" />设置允许跨域访问的网址-->
</customHeaders>
</httpProtocol>
2、在Global.asax.cs文件中增加以下方法
protected void Application_BeginRequest()
{
//OPTIONS请求方法的主要作用:
//1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法
//2、用来检查服务器的性能。如AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS 请求头,用以判断实际发送的请求是否安全。
if(Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod.Equals("OPTIONS"))
{
//表示对输出的内容进行缓冲,执行page.Response.Flush()时,会等所有内容缓冲完毕,将内容发送到客户端。
//这样就不会出错,造成页面卡死状态,让用户无限制的等下云
Response.Flush();
}
}
通过以上两步的操作即完成跨域的配置,此方法在“Framework4.7”有通过测试。
查看更多关于ASP.NET的WEBAPI跨域访问设置指南的详细内容...