CORS在ASP.NET CORE中不允许主域的问题

问题描述

我正在ASP.NET Core中使用以下代码

         services.AddCors(policy => policy.AddPolicy(Constant.CorsPolicy,builder =>
        {
            var allowedDomain = configuration.GetValue<string>("AllowedDomains").Split(",");

            services.AddCors(policy => policy.AddPolicy(Constant.CorsPolicy,builder =>
            {
                builder.WithOrigins(allowedDomain)
                       .SetIsOriginAllowedToAllowWildcardSubdomains()
                       .AllowAnyMethod()
                       .AllowAnyHeader();

            }));
        }));

为了允许所有子域和主域,此代码执行的操作是允许所有子域,但不允许主域,我正在从配置中读取值。

“ AllowedDomains”:“ https:// .test.dk,http:// .test.dk,http://test.dk”

命中以下api是不允许的:

https://api.test.dk/api/v1/Product/Search

解决方法

尝试简化CORS并这样写:

在您的ConfigureServices方法中

 public void ConfigureServices(IServiceCollection services)
 {
        services.AddCors();
 }

在您的Configure方法中

 public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
 {

        app.UseCors(options =>
       options.WithOrigins("http://localhost:3000")
       .AllowAnyHeader()
       .AllowAnyMethod());
 }