官方文档 ️ https://docs.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-2.1
1. NuGet: Microsoft.AspNetCore.Cors
2.
//Startup.ConfigureServices(IServiceCollection services)
services.AddCors(options =>
{
options.AddPolicy("AllowSpecificOrigin",
builder =>
{
builder.WithOrigins("http://0.0.0.0:3201").AllowAnyHeader();
});
});
3.//Startup.Configure(IApplicationBuilder app, IHostingEnvironment env)
//这行代码必须要在“app.UseMvc”等前面
app.UseCors("AllowSpecificOrigin");
这个方法允许该网站被http://0.0.0.0:3201跨域调用,设置这个的时候注意不要加最后一个斜杆
而我并不喜欢写死这么一个字符串,刚开始想过通配符的方式,所以看了下这些相关类里面的方法,还真的找到了个符合参数的方法,他要我传入一个委托,并且返回是bool,感觉很接近,尝试了一下还真行
//Startup.ConfigureServices(IServiceCollection services)
services.AddCors(options =>
{
options.AddPolicy("AllowSpecificOrigin",
builder =>
{
//builder.WithOrigins("http://0.0.0.0:3201").AllowAnyHeader();
builder.SetIsOriginAllowed((string arg) => {
System.Console.WriteLine(arg);
return true;
});
});
});
看图片,到这里大家自己扩展自己的方法啦,可以用正则去支持你的通配符,也可以*的写逻辑了
上面的方法已经满足了我的需求了,这个库还有好多其他的东西
这篇文章是asp.net core 2.1的,如需要支持其他版本的可以自己查阅官方文档哈