.NET中大型項目開發必備(2)--CORS跨域訪問


前言:本系列文章適合有初/中級.NET知識的同學閱讀。
(1)本系列文章,旨在講述研發一個中大型項目所需要了解的一系列“基本構件”,並提供這些“基本構件”的【最簡單】、【最快速】使用方法!!(並不深究技術原理)
(2)通過閱讀本系列文章,能讓你在正規“項目研發”方面快速入門+進階,並能達成“小團隊構建大網站”的目的。
(3)本系列文章采用的技術,已成功應用到人工智能、產業互聯網、社區電商、游戲、金融風控、智慧醫療、等項目上。

 

CORS跨域訪問問題往往出現在“瀏覽器客戶端”通過ajax調用“服務端API”的時候。而且若是深究原理,還會發現跨域問題其實還分為【簡單跨域】與【復雜跨域】這兩種情況。

網上對解決跨域限制有很多說明文章,但絕大多數要么解決的不完善(比如,沒有區分【簡單跨域】與【復雜跨域】),要么就是解決方案過於復雜化,代碼量巨大,尤其是在.Net Framework環境下。

 

先說.Net Framework環境下
本文提供一種極度簡單且十分完善的跨域訪問限制解決方案,只需一行代碼。即在服務端開發工程中添加Global.asax文件,並讓類繼承自DeveloperSharp.Structure.Base.Global即可(需從NuGet引用DeveloperSharp包)。代碼如下:

    public class Global : DeveloperSharp.Structure.Base.Global
    {

    }

 如此,就解決了跨域訪問問題。

另外,此時若需要使用Application_Start等方法,則形式上需要稍做變化。示例如下:

    public class Global : DeveloperSharp.Structure.Base.Global
    {
        protected override void ApplicationStart(object sender, EventArgs e)
        {
            Application["count"] = 100;
        }

        protected override void SessionStart(object sender, EventArgs e)
        {
            Application["count"] = Convert.ToInt32(Application["count"]) + 1;
        }
    }

 

再說.Net Core環境下
.Net Core對跨域問題做了相關優化,解決起來相對容易 。代碼如下:

//在Startup.cs或Program.cs文件中進行設置

Services.AddCors(Option =>
    Option.AddPolicy("CorsPolicy", Policy =>
        Policy.AllowAnyOrigin()
        .AllowAnyHeader()
        .AllowAnyMethod()
        .AllowCredentials())
    );
--------------------------

app.UseCors("CorsPolicy");//須在app.UseMvc()之前

 

推薦閱讀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM