我正在尝试在我的MVC 6 WebApi项目中启用CORS,我发现了这个问题,重点关注同样的问题: How do you enable cross-origin requests (CORS) in ASP.NET 5 & MVC 6?
它看起来与我想做的完全一样,但当我到达这一部分时,我遇到了麻烦。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//Add Cors support to the service
services.AddCors();
var policy = new Microsoft.AspNet.Cors.Core.CorsPolicy();
policy.Headers.Add("*");
policy.Methods.Add("*");
policy.Origins.Add("*");
policy.SupportsCredentials = true;
services.ConfigureCors(x=>x.AddPolicy("mypolicy", policy));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Configure the HTTP request pipeline.
app.UseStaticFiles();
//Use the new policy globally
app.UseCors("mypolicy");
// Add MVC to the request pipeline.
app.UseMvc();
}
它(以及我发现的关于此主题的任何其他资源)明确指出我应该在app.UseCors("policyname")
文件的Configure
方法中使用Startup.cs
。
但是当我这样做时,我收到以下错误:
'IApplicationBuilder' does not contain a definition for 'UseCors' and no extension method 'UseCors' accepting a first argument of type 'IApplicationBuilder' could be found (are you missing a using directive or an assembly reference?)
我知道这是MVC 6中的一个全新功能,也许这就解释了为什么我找不到任何关于如何实现它的官方文档。
它可以像添加正确的NuGet包一样简单吗? 我已经尝试了几个与CORS相关的.Net NuGet软件包,但它们没有解决问题,我怀疑它们与旧版WebApi有关。