好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ASP.NET的WEBAPI跨域访问设置指南


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跨域访问设置指南的详细内容...

  阅读:86次