来自IIS 7.5的Web API没有响应Chrome & Firefox。 我在镀铬 中收到以下错误否请求的资源上存在“Access-Control-Allow-Origin”标头。原因'http://10.xx.xx.xx:81'因此不允许访问Chrome和Firefox上的CORS问题
Firefox抛出401未经授权的错误。
完美的作品在IE 11
是否有这些浏览器所需的任何额外的设置?
来自IIS 7.5的Web API没有响应Chrome & Firefox。 我在镀铬 中收到以下错误否请求的资源上存在“Access-Control-Allow-Origin”标头。原因'http://10.xx.xx.xx:81'因此不允许访问Chrome和Firefox上的CORS问题
Firefox抛出401未经授权的错误。
完美的作品在IE 11
是否有这些浏览器所需的任何额外的设置?
“资源使一个跨域HTTP请求时,它比第一资源本身提供了一个不同的域请求资源” 您可以使用Chrome的插件,允许CORS:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi
首先安装的WebAPI一个Cors NuGet包:
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
这将无法工作在浏览器在控制的环境中使用。这也不是一个通用的解决方案。服务器端修补程序也可以解决Firefox的问题。 – chaitu301
我试图设置IIS,如下所述,但也没有奏效。 http://webprojectsolution.blogspot.ca/2016/04/how-to-resolve-cors-issues-in-web-api.html – chaitu301