我刚开始使用Docker,我想在ASP上将我的Web API连接到它。当我在我的API的Program.cs中配置CORS策略时,如果我指定受限地址,例如:
builder
.WithOrigins("http://localhost:5256 ")
.AllowAnyHeader()
.AllowAnyMethod();
字符串
那么容器通常会被创建并在将来正常启动。但是如果我指定
app.UseCors(builder => builder.AllowAnyOrigin());
型
然后当你启动容器时,没有页面并给出结果ERR_EMPTY_RESPONSE有人能解释一下吗,为什么会发生这种情况?这是我的Program.cs文件:
using System;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddDbContext<AppDbContext>();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.UseCors(builder => builder.AllowAnyOrigin());
app.MapControllers();
app.Run();
型
容器工作,但当我点击链接,它只是ERR_EMPTY_RESPONSE. enter image description here
我试着用
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowLocalhost", builder =>
{
builder
.WithOrigins("http://localhost:5256")
.AllowAnyHeader()
.AllowAnyMethod();
});
});
型
但根本不管用。我还试着加上
.SetIsOriginAllowed(_ => true),
型
但也无济于事
1条答案
按热度按时间wtzytmuj1#
我会尽早在中间件中注册它,通常在swagger开发环境之上,因为它可能会在应用cors之前处理请求