C# Net Core:在 API 中启用 Cors 后,仍处于 CORS 策略阻止状态

Posted

技术标签:

【中文标题】C# Net Core:在 API 中启用 Cors 后,仍处于 CORS 策略阻止状态【英文标题】:C# Net Core: After enabling Cors in API, it still states blocked by CORS policy 【发布时间】:2019-05-25 06:08:07 【问题描述】:

我创建了一个在 VS 和 Postman 中工作的后端 Net Core API。 但是,在创建 Angular CLI 前端时,我收到此错误。这没有任何意义,因为我为 AllowAnyOrigin 下面启用了添加 Cors。

角度错误:

Access to XMLHttpRequest at 'https://localhost:xxxx/api/values' from origin 'http://localhost:xxxx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Startup.cs

public class Startup
    
        public Startup(IConfiguration configuration)
        
            Configuration = configuration;
        

        public IConfiguration Configuration  get; 

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddCors((options =>
             options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin());));

        

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        
            app.UseCors();
            // Shows UseCors with CorsPolicyBuilder.
            if (env.IsDevelopment())
            
                app.UseDeveloperExceptionPage();
            
            else
            
                app.UseHsts();
            

            app.UseHttpsRedirection();
            app.UseMvc();
        
    

https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.2

【问题讨论】:

试试这个enable-cors.org/server_iis7.html 【参考方案1】:

您还需要将 CORS 中间件添加到管道中:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

    app.UseCors("AllowAllOrigins");
    // Other middleware

当您调用 AddCors() 时,您正在添加 CORS 中间件所需的服务,以及定义策略。 但是您还需要在中间件管道中应用该策略。

【讨论】:

以上是关于C# Net Core:在 API 中启用 Cors 后,仍处于 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 的问题

在 Angular 9 + Asp.net Core Web API 中启用 Windows 身份验证后,预检(选项)请求失败

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