.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
我正在构建一个 .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