天天看點

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

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

繼續閱讀