我需要您的意见和帮助来解决我面临的这个问题。我有一个 ASP.NET Core Web API。从使用此 API 的 Web 应用程序中,有一个端点,我强调“ONE ENDPOINT”,这会导致 CORS 错误。这仅发生在生产中,而不会发生在开发和测试/认证环境中。 CORS 策略是全局定义的,Web 域是允许的来源之一。
从源
https://dominio-api.produccion.net/api/ParameMessages
访问位于
的 XMLHttpRequest 已被 CORS 策略阻止:请求的资源上存在 NoAccess-Control-Allow-Origin' 标头。 /#/administracion/parametros-lista:1 C\> PUT https://dominio-api.produccion.net/api/ParameMessages我尝试在控制器级别设置 CORS 策略,并在路由和身份验证之间移动https://dominio.produccion.net
UseCors
中间件:
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder
.WithOrigins
(
"http://localhost:4200",
"https://dominio.produccion.net",
"https://dominio.test.net"
)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()
);
});
---
app.UseExceptionless();
app.UseRouting();
app.UseCors("CorsPolicy");
app.UseAuthentication();
app.UseAuthorization();
app.UseRateLimiter();
发生这种情况是因为浏览器发现预检(OPTIONS)请求失败,然后它会说这是一个 CORS 错误。
看到您已经通过
options.AddPolicy()
设置了正确的标头,我建议检查 API 为什么会响应 403 状态。