【ASP.NET Core】Asp.Net Core 处理跨域请求
-
跨域请求
asp.net core中配置跨域请求需要
public void ConfigureServices(IServiceCollection services)
{
//配置跨域处理
services.AddCors(options =>
{
//获取存储于配置文件中允许的Origin列表
string[] allowOrigins = Configuration.GetSection("AllowOrigins").Get<string[]>();
//添加默认跨域规则
options.AddDefaultPolicy(PolicyBuilder(allowOrigins));
//其他允许跨域的指定origins
allowOrigins = new string[]{"http://other.origins"};
//添加名为PolicyName的跨域规则,使用时需要在控制器上添加EnableCors("PolicyName"), 同时默认跨域规则仍有效
options.AddPolicy("PolicyName", PolicyBuilder(allowOrigins));
});
// Get the default cors policy; 通过指定Origins列表构建包含指定Methods的Cors Policy
static CorsPolicy PolicyBuilder(string[] allowOrigins) => new CorsPolicyBuilder(allowOrigins)
//允许的HTTP Methods集合
.WithMethods(ResponseHelper.AllowedMethodArray)
.AllowAnyHeader()
.AllowCredentials()
//构建CorsPolicy
.Build();
}
特殊说明:使用AllowAnyOrigins与AllowCredential同时出现是一种不安全的行为,官方出于安全考虑禁用了这一组合, ref: Microsoft 官方文档

浙公网安备 33010602011771号