关于chrome& amp;的CORS问题火狐

时间:2016-04-08 17:59:17

标签: asp.net-web-api iis-7.5

来自IIS 7.5的Web API没有响应Chrome& Firefox浏览器。 我在chrome中遇到以下错误 请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许来源“http://10.xx.xx.xx:81”访问

Firefox抛出401未经授权的错误。

在IE 11上完美运行

这些浏览器是否还需要其他设置?

2 个答案:

答案 0 :(得分:1)

首先安装WebApi Cors NuGet Package:

Install-Package Microsoft.AspNet.WebApi.Cors

然后在您的WebApiConfig.cs文件中:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        var cors = new EnableCorsAttribute("*", "*", "*");
        config.EnableCors(cors);

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        //other code
    }
}

这样,您可以全局启用CORS标头,从而允许来自任何域的跨站点请求。如果您只想允许来自单个(或列表)域的跨站点请求,请更改EnableCorsAttribute的构造函数参数:

new EnableCorsAttribute("http://alloweddomain.com", "*", "*");

您也可以在控制器或操作的基础上应用EnableCorsAttribute

有关官方文档的更多信息:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

答案 1 :(得分:0)

“资源在请求来自与第一个资源本身所服务的域不同的域的资源时发出跨源HTTP请求” 您可以使用chrome插件来允许CORS:

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi