CORS跨域訪問問題往往出現在“瀏覽器客戶端”通過ajax調用“服務端API”的時候。而且若是深究原理,還會發現跨域問題其實還分為【簡單跨域】與【複雜跨域】這兩種情況。 網上對解決跨域限制有很多說明文章,但絕大多數要麼解決的不完善(比如,沒有區分【簡單跨域】與【複雜跨域】),要麼就是解決方案過於複雜 ...
CORS跨域訪問問題往往出現在“瀏覽器客戶端”通過ajax調用“服務端API”的時候。而且若是深究原理,還會發現跨域問題其實還分為【簡單跨域】與【複雜跨域】這兩種情況。
網上對解決跨域限制有很多說明文章,但絕大多數要麼解決的不完善(比如,沒有區分【簡單跨域】與【複雜跨域】),要麼就是解決方案過於複雜化,代碼量巨大。
本文提供一種極度簡單且十分完善的跨域訪問限制解決方案,只需一行代碼(僅支持.Net Framework)。即在服務端開發工程中添加Global.asax文件,並讓類繼承自DeveloperSharp.Structure.Base.Global即可(需從NuGet引用DeveloperSharp包)。代碼如下:
public class Global : DeveloperSharp.Structure.Base.Global { }
如此,就解決了跨域訪問問題。
(若需要解決.Net Core跨域問題,請參看這篇文章:.Net Core跨域實現)
另外,此時若需要使用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; } }