ASP.Net Core 6.0 WebApi配置跨域
- Program.cs文件代码如下:
-
//配置跨域 builder.Services.AddCors(cor => { var cors = configuration.GetSection("CorsUrls").GetChildren().Select(p => p.Value); cor.AddPolicy("Cors", policy => { policy.WithOrigins(cors.ToArray())//设置允许的请求头 .WithExposedHeaders("x-custom-header")//设置公开的响应头 .AllowAnyHeader()//允许所有请求头 .AllowAnyMethod()//允许任何方法 .AllowCredentials()//允许跨源凭据----服务器必须允许凭据 .SetIsOriginAllowed(_ => true); }); });
-
- 这一句
app.UseCors("Cors");
必须放在app.UseRouting();
之后,但在app.
UseAuthorization
();
之前 - 注册中间件
⚠中间件顺序 ASP.NET Core 中间件-
app.UseCors("Cors");
-
- appsettings.json
-
"CorsUrls": [ "http://localhost:9000", "http://*:9000" ]
-
官方文档
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
需要注意的是,ajax请求跨域客户端必须将 XMLHttpRequest.withCredentials
设置为 true
,或