ASP.NET 核心 CORS 配置不适用于 Firefox
ASP.NET Core CORS configuration not working for Firefox
我的 ASP.NET Core (dotnet SDK 3) 应用程序有以下 CORS 配置。我观察到此配置非常适合 Google Chrome(版本 76.0.3809.100 64 位)。 Mozilla Firefox Developer Edition(版本 69.0b14 64 位)中的响应 headers 中缺少 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();
});
}
我发现了这个问题,这是一个非常奇怪的问题。我正在阅读一篇较旧的博客,其中讨论了 CORS 和 ASP.NET Core。然后我偶然发现 this comment 说该解决方案适用于 Kestrel,但不适用于 IIS Express。所以我更改了我的构建配置以不使用 IIS Express,它现在可以完美地用于两种浏览器。如果你想让它在 IIS Express 上工作,那么你不要编辑你的 Startup.cs
,而是编辑你的 application.config
文件,它可能位于你的项目根文件夹中。
我的 ASP.NET Core (dotnet SDK 3) 应用程序有以下 CORS 配置。我观察到此配置非常适合 Google Chrome(版本 76.0.3809.100 64 位)。 Mozilla Firefox Developer Edition(版本 69.0b14 64 位)中的响应 headers 中缺少 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();
});
}
我发现了这个问题,这是一个非常奇怪的问题。我正在阅读一篇较旧的博客,其中讨论了 CORS 和 ASP.NET Core。然后我偶然发现 this comment 说该解决方案适用于 Kestrel,但不适用于 IIS Express。所以我更改了我的构建配置以不使用 IIS Express,它现在可以完美地用于两种浏览器。如果你想让它在 IIS Express 上工作,那么你不要编辑你的 Startup.cs
,而是编辑你的 application.config
文件,它可能位于你的项目根文件夹中。