CORS协议不允许同时指定通配符(任何)来源和凭证

时间:2019-07-08 12:51:14

标签: cors asp.net-core-webapi

我收到警告错误,说

  

“ Microsoft.AspNetCore.Cors.Infrastructure.CorsService | CORS   协议不允许指定通配符(任何)来源,并且   凭证。通过列出配置策略   如果需要支持凭据,则为单个来源。”

代码 控制器

[Route("api/[controller]")]
    [EnableCors("CorsPolicy")]
    [ApiController]
    public class MedPlusController : ControllerBase
    {
    }

Startup.cs

  public void ConfigureServices(IServiceCollection services)
            {
               services.AddDbContext<Context>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

                services.AddCors(options =>
                {
                    options.AddPolicy("CorsPolicy",
                        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("CorsPolicy");

                app.UseMvc();
            }

1 个答案:

答案 0 :(得分:0)

如果您实施身份验证,则将

AllowAnyOrigin更改为WithOrigins
    services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder.WithOrigins("http://example.com")
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials());
            });

如果您不使用身份验证,则可以直接删除.AllowCredentials()

引用Set the allowed origins