【发布时间】:2016-05-01 12:54:53
【问题描述】:
如何将 CORS 标头添加到我的 MVC6 应用程序?我对全局和按操作感兴趣。
似乎 ASP.Net vNext/5/Core 发生了一些变化,因此对于不同的版本,这个问题有不同的答案。我正在使用 RC1。
我已经尝试过这个 SO“How to enable CORS in ASP.NET Core”,但来到 var policy = new Microsoft.AspNet.Cors.Core.CorsPolicy(); 时,“Core”命名空间不存在。
在“How do you enable cross-origin requests (CORS) in ASP.NET 5 & MVC 6?”中尝试了答案,但方法/扩展方法services.ConfigureCors 不存在。
最后一个 SO 答案与this blog post 相同,也表示首先安装 Microsoft.AspNet.Cors (Install-Package Microsoft.AspNet.Cors)。但是这样做会使事情变得更糟,然后services.AddCors()由于某种原因不存在。
“Enable cross-origin requests (CORS) in ASP.NET 5 & MVC 6”表示要安装“Microsoft.AspNet.Cors.Core”,但它不存在,using Microsoft.AspNet.Builder; 无济于事。
【问题讨论】:
-
尝试在
ConfigureServices方法中添加services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyHeader()));,在Startup.cs的Configure方法中添加app.UseCors("AllowAll");。您应该将"Microsoft.AspNet.Cors": "6.0.0-rc1-final"添加到"dependencies"的project.json。见the documentation -
那行得通。根据博客文章中的说明,它正在安装 Microsoft.AspNet.Cors 5.2.3 版,需要 6.0.0 版。
-
这是一个很大的问题,现在有很多开发者。包将被重命名,对旧名称的请求将不会被重定向。我发布了the suggestion,但微软似乎没有看到这个问题足够严重。顺便说一下,包现在重命名为Microsoft.AspNetCore.Cors。 :-)
-
这个 CORS 是一个移动的目标。谢谢奥列格,知道有用。所以它可能会在下一个版本中再次改变。
标签: asp.net-core asp.net-core-mvc