且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2021-10-27 23:47:02

原文: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 跨域配置