在 Web Api Core 1.1 中启用 Cors

Posted

技术标签:

【中文标题】在 Web Api Core 1.1 中启用 Cors【英文标题】:Enable Cors in Web Api Core 1.1 【发布时间】:2017-11-22 18:01:10 【问题描述】:

我需要在我的 Web Api .Net Core 中启用跨域资源共享,但没有任何反应,我的请求标头中从来没有 Access-Control-Allow-Origin。

这是 Startup.cs 配置:

 public void ConfigureServices(IServiceCollection services)
               

        services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()
                                                                .AllowAnyMethod()
                                                                 .AllowAnyHeader()));
        services.AddMvc();            

        services.Configure<IISOptions>(options =>
        
            options.AutomaticAuthentication = true;
        );
    



 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();
        app.UseCors("AllowAll");
        ConfigureAuth(app);             
        app.UseMvc();
    

这是响应标头 Header

【问题讨论】:

是全部代码吗?没有异常中间件或错误页面?这些可以在发生异常时清除 cors 标头 中间件或页面中没有例外。我真的不知道为什么它不起作用。没有错误,在调试中代码被执行,但没有办法有标题 但是您在调用 API 时是否遇到任何错误? 【参考方案1】:

您可以在 ConfigureServices 方法中的 Startup 类中配置 CORS

public void ConfigureServices(IServiceCollection services)
.         
.             services.AddCors(options =>
.             
.                 options.AddPolicy("CorsPolicy",
.                builder => builder.AllowAnyOrigin()
.                .AllowAnyMethod()
.                .AllowAnyHeader()
.                .AllowCredentials());
.             );
.         

将其应用于每个请求

    public void Configure(IApplicationBuilder app)

app.UseCors("MyPolicy");

你可以应用在控制器或方法上,例如添加属性

 [EnableCors("MyPolicy")]

`

【讨论】:

以上是关于在 Web Api Core 1.1 中启用 Cors的主要内容,如果未能解决你的问题,请参考以下文章

在 Web API Core 和 Angular JS 中启用 CORS

无法在 ASP.Net Core Web api 中启用 CORS

在 .NET Core Web API 上为 CORS 启用 OPTIONS 标头

在 ASP .NET Core 2.1 Web Api 中启用 CORS

在 asp net core web api v3.0 中启用 CORS 的问题

如何在我的 ASP.NET Core Web API 中启用 BSON 序列化?