单个端点上的 CORS

问题描述 投票:0回答:1

我需要您的意见和帮助来解决我面临的这个问题。我有一个 ASP.NET Core Web API。从使用此 API 的 Web 应用程序中,有一个端点,我强调“ONE ENDPOINT”,这会导致 CORS 错误。这仅发生在生产中,而不会发生在开发和测试/认证环境中。 CORS 策略是全局定义的,Web 域是允许的来源之一。

从源
https://dominio-api.produccion.net/api/ParameMessages

访问位于

https://dominio.produccion.net
的 XMLHttpRequest 已被 CORS 策略阻止:请求的资源上存在 NoAccess-Control-Allow-Origin' 标头。 /#/administracion/parametros-lista:1 C
\> PUT 

https://dominio-api.produccion.net/api/ParameMessages

net :: ERR_FAILED 403(禁止)polyfills.d2ee36b 为:1

我尝试在控制器级别设置 CORS 策略,并在路由和身份验证之间移动
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();

	
asp.net-core .net-core cors
1个回答
0
投票

发生这种情况是因为浏览器发现预检(OPTIONS)请求失败,然后它会说这是一个 CORS 错误。

看到您已经通过

options.AddPolicy()

设置了正确的标头,我建议检查 API 为什么会响应 403 状态。

    

© www.soinside.com 2019 - 2024. All rights reserved.