WebApi 2.2跨源支持

时间:2014-10-21 20:30:24

标签: asp.net cors asp.net-web-api2

我正在尝试为我的API添加CORS支持。我已经添加了nuget包Microsoft.AspNet.WebApi.Cors。我已将此添加到我的WebgApiConfig.cs文件中,在Register

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

我也尝试过在Controller上进行配置。无论我尝试什么,Access-Control-Allow-Origin标头都没有添加到响应中,当我执行javascript时,我在Chrome中收到此消息

No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://localhost:19560' is therefore not allowed access. The response had HTTP status code 401

对我可能遗失的任何想法?

如果我设置了ajax contentType,它现在有效     contentType:' text / plain'

显然这是必需的,因为没有路由处理来自浏览器的预检选项请求。现在我需要弄清楚如何处理预检选项检查,这样我就不必设置contentType。

1 个答案:

答案 0 :(得分:1)

通过CORS提供跨域支持解决方案的非常好的教程:

http://www.codeproject.com/Articles/843044/Getting-started-with-AngularJS-and-ASP-NET-MVC-The

它实际上只是一个要安装的nuget包:

Install-Package Microsoft.Owin.Cors

在Startup.cs中,修改Configuration以使其包含以下内容:

public void Configuration(IAppBuilder app)
{
  app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
  ConfigureAuth(app);
}