.Net 5 Web API CORS LocalHost

.Net 5 Web API CORS LocalHost

我正在构建一个 .Net 5 Web API,只有当我在 运行 本地(又名本地主机)时,我才遇到 CORS 问题。当我将我的应用程序部署到 Azure 后,我可以从我的 Blazor 应用程序访问我的 API。

Class Startup.cs

readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

Class: Startup.cs
方法:配置服务

services.AddCors(options =>
{
    //didn't work
    //options.AddDefaultPolicy(builder =>
    //{
    //    builder.SetIsOriginAllowed(origin => new Uri(origin).Host == "localhost");
    //});

    options.AddPolicy(name: MyAllowSpecificOrigins,
                      builder =>
                      {
                          builder.WithOrigins("https://localhost:44373/", "https://myawesomesite")
                          .AllowAnyMethod()
                          .AllowAnyHeader()
                          .AllowCredentials();
                      });
}); 

Class: Startup.cs
方法:配置

app.UseCors(MyAllowSpecificOrigins);

我这边的工作正常,如下所示。

Class: Startup.cs

方法:配置服务

services.AddCors(c =>  
  { 
    c.AddPolicy("AllowOrigin", options => options.AllowAnyOrigin());  
  }); 

Class: Startup.cs

方法:配置

app.UseCors(options => options.AllowAnyOrigin());

试试这个,如果有帮助请告诉我。

只需从本地主机中删除尾随的“/”url,对于测试,您可以尝试删除 .AllowCredentials()。

并使用此语法:

services.AddCors(o => o.AddPolicy( MyAllowSpecificOrigins,
                      builder =>
                      {
                          builder.WithOrigins("https://localhost:44373", 
                      "https://myawesomesite")
                      .AllowAnyMethod()
                       .AllowAnyHeader();
            }));

并且您的 UseCors 方法应该在 UseRouting 和 UseAuthourization 之间


app.UseRouting()
....
.....
app.UseCors(MyAllowSpecificOrigins);

....
....
app.UseAuthorization(); // if you need the one