ASP.Net Core Web Api access-control-max-age 未在响应标头中发送

Gan*_*shT 2 c# asp.net-core webapi

我在 Startup.cs 中有 SetPreFlightMaxAge。但 chrome“检查”>“网络”选项卡不会在响应标头中显示它。

启动.cs

app.UseCors(o =>
{
o.WithOrigins(allowedDomains.ToArray())
.SetPreFlightMaxAge(TimeSpan.FromMinutes(10))
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
});
Run Code Online (Sandbox Code Playgroud)

响应标头(GET 方法):除了一些其他标头之外,它还发送这些标头。下面第三行有一个 max-age,但这不是 Startup.cs 中设置的 10 分钟值

access-control-allow-credentials: true
access-control-allow-origin: ...
set-cookie: ...
strict-transport-security: max-age=2592000
vary: Origin,Accept-Encoding
Run Code Online (Sandbox Code Playgroud)

响应标头(OPTIONS 方法):

access-control-allow-credentials: true
access-control-allow-headers: ...
access-control-allow-origin: ...
set-cookie: ...
Run Code Online (Sandbox Code Playgroud)

小智 6

在.NET core 3.1中尝试将其添加到ConfigureServices中

services.AddCors(o => o.AddPolicy("xyzpolicy", builder =>
            {
  
                builder.AllowAnyOrigin()
                       .AllowAnyMethod()
                       .AllowAnyHeader()
                       .SetPreflightMaxAge(TimeSpan.FromMinutes(10));
            }));
Run Code Online (Sandbox Code Playgroud)

他们说基于 Chromium 的浏览器最多需要 2 小时