【问题标题】:ASP.NET Core CORS configuration not working for FirefoxASP.NET Core CORS 配置不适用于 Firefox
【发布时间】:2019-12-23 21:30:40
【问题描述】:

我的 ASP.NET Core (dotnet SDK 3) 应用程序具有以下 CORS 配置。我观察到这种配置非常适用于 Google Chrome(版本 76.0.3809.100 64 位)。 Mozilla Firefox Developer Edition(69.0b14 64 位版本)的响应标头中缺少 Access-Control-Allow-Origin。事实上,没有任何回应。有什么解决办法吗?

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers()
        .AddNewtonsoftJson();

    services.AddCors();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
    }

    app.UseCors(builder => 
        builder.AllowAnyOrigin()
            .AllowAnyMethod()
            .AllowAnyHeader()
    );

    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

【问题讨论】:

    标签: c# asp.net-core asp.net-core-3.0


    【解决方案1】:

    我发现了这个问题,这是一个非常奇怪的问题。我正在阅读一篇关于 CORS 和 ASP.NET Core 的旧博客。然后我偶然发现了this comment,它说该解决方案适用于 Kestrel,但不适用于 IIS Express。因此,我将构建配置更改为不使用 IIS Express,它现在可以在两种浏览器中完美运行。如果您希望这适用于 IIS Express,则无需编辑 Startup.cs,而是编辑可能位于项目根文件夹中的 application.config 文件。

    【讨论】:

    • 您是否在 IIS Express 设置中启用了 Windows 身份验证?如果是这样,则在没有身份验证的情况下执行 OPTION 调用,因此您应该允许该站点或该特定调用的匿名访问
    • 身份验证未启用。
    猜你喜欢
    • 2013-10-06
    • 2014-11-19
    • 2021-01-03
    • 2016-01-15
    • 2019-05-25
    • 2021-02-08
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    相关资源
    最近更新 更多