前言:本系列文章適合有初/中級.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()之前
推薦閱讀
- .NET中大型項目開發必備(1)–UUID全球通用唯一識別碼
 - .NET中大型項目開發必備(2)–CORS跨域訪問
 - .NET中大型項目開發必備(3)–數據庫的負載均衡
 - .NET中大型項目開發必備(4)–數據庫的讀寫分離
 - .NET中大型項目開發必備(5)–Web服務/WebApi的負載均衡
 - .NET中大型項目開發必備(6)–IUtility工具介紹
 - .NET中大型項目開發必備(7)–DataAccess數據庫訪問技術
 - .NET中大型項目開發必備(8)–高效分頁
 - .NET中大型項目開發必備(9)--http請求調用(Post與Get)
 - .NET中大型項目開發必備(10)--圖片的裁剪、縮放、與加水印
 - .NET中大型項目開發必備(11)--使用Redis緩存
 - .NET中大型項目開發必備(12)--使用MQ消息隊列
 - .NET中大型項目開發必備(13)--DataAccess數據庫訪問技術(續)
 - .NET中大型項目開發必備(14)--數據庫的負載均衡(續)
 
