在ASP.NET 5&MVC 6启用跨源请求(CORS)(Enable cross-origin r

2019-10-24 15:11发布

我试图让CORS在我的MVC 6的WebAPI项目,我发现这个问题,着眼于同样的问题: 如何启用ASP.NET中的5 MVC 6跨域请求(CORS)?

它看起来很像是我想做的事情,但是当我到了这个部分,我遇到了麻烦。

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();
}

它(藏汉因为在这个问题上,我发现任何其他ressources)明确指出,我应该使用app.UseCors("policyname")Configure中的方法Startup.cs -file。 但是,当我这样做,我得到以下错误:

'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包一样简单的东西吗? 我试着从几个微软的.Net的NuGet包相关CORS,但他们并没有解决这个问题,我怀疑它们与旧版本的WebAPI的。

Answer 1:

添加在此

using Microsoft.AspNet.Builder;

并确保您有包在你的project.json文件

Microsoft.AspNet.Cors.Core

这是扩展的图像



文章来源: Enable cross-origin requests (CORS) in ASP.NET 5 & MVC 6