ASP .NET Core 中的 CORS 问题 - 响应中的“Access-Control-Allow-Origin”标头的值不能是通配符 '*

Posted

技术标签:

【中文标题】ASP .NET Core 中的 CORS 问题 - 响应中的“Access-Control-Allow-Origin”标头的值不能是通配符 \'*【英文标题】:Issue in CORS in ASP .NET Core - The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*ASP .NET Core 中的 CORS 问题 - 响应中的“Access-Control-Allow-Origin”标头的值不能是通配符 '* 【发布时间】:2020-08-30 11:22:03 【问题描述】:

我收到以下错误

从源 'http://localhost:23456' 访问 XMLHttpRequest 在 'http://localhost:5000/api/values/track/?name=name&time=1589425390870' 已被 CORS 策略阻止:响应中的 'Access-Control-Allow-Origin' 标头的值不能是通配符 '* ' 当请求的凭据模式为 'include' 时。 XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。

我已经像下面这样配置了 Asp.net 核心应用程序

public void ConfigureServices(IServiceCollection services)
        

            services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
            
                builder.AllowAnyOrigin()
                       .AllowAnyMethod()
                       .AllowAnyHeader().AllowCredentials() ;
            ));


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        
            if (env.IsDevelopment())
            
                app.UseDeveloperExceptionPage();
            

            app.UseCors("MyPolicy");
            app.UseMvc();
        

内容类型:application/x-www-form-urlencoded

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

当请求的凭据模式为“包含”时,响应中的“Access-Control-Allow-Origin”标头的值不能是通配符“*”。

由于错误表明您使用 AllowAnyOriginAllowCredentials 方法配置您的应用程序,这导致 CORS 服务返回无效的 CORS 响应。

您可以修改代码以启用特定来源,如下所示。

builder.WithOrigins("set_specified_origins_here")
        .AllowAnyMethod()
        .AllowAnyHeader()
        .AllowCredentials();

有关“设置允许的来源”的详细信息,请查看以下文档:https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.0#set-the-allowed-origins-1

【讨论】:

韩飞,它对我有用。衷心感谢您 :) 感谢您的快速帮助。

以上是关于ASP .NET Core 中的 CORS 问题 - 响应中的“Access-Control-Allow-Origin”标头的值不能是通配符 '*的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net Core 允许 CORS 中的 IP 范围

Angular / ASP.NET Core 2.1 CORS 问题

如何为 ASP.NET Core 2.2 项目中的子域正确启用 CORS?

根据官方文档,Asp.net Core 3.0 CORS 无法正常工作

ASP .NET Core 中的 CORS 问题 - 响应中的“Access-Control-Allow-Origin”标头的值不能是通配符 '*

如何在 Asp.Net Core 3.0 WebAPI 中启用 CORS