【问题标题】:"Blocked by CORS" error after migrating from .NET Core 2.1 to v3.1从 .NET Core 2.1 迁移到 v3.1 后出现“被 CORS 阻止”错误
【发布时间】:2021-11-25 07:33:45
【问题描述】:

我有一个最初用 .NET Core v2.1 编写的 Web 应用程序。

在我将它迁移到 .NET Core v3.1 之后 - 我的所有 UI 请求都抛出以下错误: *Access to XMLHttpRequest at 'https://myapp.net/v1/myendpoint' from origin 'https://mainapp.net' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.*

这是我的 Startup.cs:

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


        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.MyRequireTLSOnRemoteConnections(); // <-- (proprietary)
            if (env.EnvironmentName == "Development")
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseAuthentication();
            app.UseReportingAuthentication();
            app.UseCors("MyCorsPolicy");

            app.UseSwagger();
         ...
         }

我有意删除了 app.UseHttpsRedirection(); 以完全禁用 HTTP 调用。

该问题是特定于 UI 的,并且在通过 Postman 执行端点时不会发生。

我已经尝试了不同的选项,我可以在互联网上找到,例如:

  • 在 app.UseCors() 之前添加app.UseRouting();; 但仍然出现错误。

【问题讨论】:

    标签: asp.net-core cors asp.net-core-3.1


    【解决方案1】:

    似乎解决我的问题的方法是将 app.UseCors("MyCorsPolicy"); 移到方法的顶部。至少它为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多