解决WebAPI 跨域问题最有效的方法:
前提:需要引入
在 App_Start 的 WebApiConfig.cs 文件里添加下面的代码:
var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"];
var allowHeaders = ConfigurationManager.AppSettings["cors_allowHeaders"];
var allowMethods = ConfigurationManager.AppSettings["cors_allowMethods"];
var globalCors = new System.Web.Http.Cors.EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods)
{
SupportsCredentials = true
};
然后在Web.config 文件里添加下面的代码:、
<configuration>
<appSettings>
<!--同源策略解决办法,*表示允许所有请求通过-->
<add key="cors_allowOrigins" value="*" />
<add key="cors_allowHeaders" value="*" />
<add key="cors_allowMethods" value="*" />
</appSettings>
<system.webServer>
<!-- 设定服务器支持JavaScript 所有源访问 -->
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET" />
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type" />
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
完美解决跨域问题!!!