启用 CORS
启用 CORS
有三种方法可以启用 CORS:
- 在使用命名策略或默认策略的中间件中。
- 使用终结点路由。
- 使用 [EnableCors] 属性。
使用默认策略和中间件的 CORS
builder.Services.AddCors(options => { options.AddDefaultPolicy(policy => { policy.WithOrigins("http://localhost:5173").AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin();
}); }); var app = builder.Build();
注意:指定的 URL 不能包含尾部斜杠 (/
)。 如果 URL 以 /
结尾,则比较返回 false
,并且不返回任何标头。
app.UseRouting(); app.UseCors();//使用跨域中间件,注意调用的顺序 app.UseAuthorization();
注意:
-
UseCors
添加 CORS 中间件。 对UseCors
的调用必须放在UseRouting
之后,但在UseAuthorization
之前。 - 使用响应缓存中间件时,请在 UseResponseCaching 之前调用 UseCors。
使用命名策略和中间件的 CORS
var MyAllowSpecificOrigins = "_myAllowSpecificOrigins"; var builder = WebApplication.CreateBuilder(args); builder.Services.AddCors(options => { options.AddPolicy(MyAllowSpecificOrigins, policy => { policy.WithOrigins("http://example.com", "http://www.contoso.com") .AllowAnyHeader() .AllowAnyMethod(); }); }); builder.Services.AddControllers(); var app = builder.Build(); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseCors(MyAllowSpecificOrigins); app.UseAuthorization(); app.MapControllers(); app.Run();
参考:https://learn.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-7.0