asp.net (webapi) core 2.1 跨域配置

时间:2023-11-23 10:30:44

原文:asp.net (webapi) core 2.1 跨域配置

官方文档 ➡️ 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 (webapi) core 2.1 跨域配置

看图片,到这里大家自己扩展自己的方法啦,可以用正则去支持你的通配符,也可以*的写逻辑了

上面的方法已经满足了我的需求了,这个库还有好多其他的东西

asp.net (webapi) core 2.1 跨域配置

这篇文章是asp.net core 2.1的,如需要支持其他版本的可以自己查阅官方文档哈

asp.net (webapi) core 2.1 跨域配置