IIS 7.5中的web API不支持Chrome和Firefox。我在chrome中得到以下错误:请求的资源上不存在'Access-Control-Allow-Origin‘标头。因此不允许访问源'http://10.xx.xx.xx:81‘
Firefox抛出401未授权错误。
在IE 11上完美工作
这些浏览器是否需要其他设置?
发布于 2016-04-08 22:01:14
首先安装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
发布于 2016-04-08 18:04:38
“当资源请求来自不同于第一个资源本身所服务的域的资源时,它会发出跨域HTTP请求”您可以使用chrome插件来允许CORS:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi
https://stackoverflow.com/questions/36506307
复制