有些團隊會把前後端專案切開,放在不同的網域執行,如此一來就會遇到瀏覽器安全性問題,禁止不同網域的請求。如上圖。
本篇將介紹 ASP.NET Core 啟用跨域請求 Cross-Origin Requests (CORS)。
1. 安裝 NuGet 套件
ASP.NET Core 有針對 CORS 出套件。
打開 NuGet 找到 Microsoft.AspNetCore.Cors
並安裝。
2. Startup
安裝完 CORS 套件後,在 Services 註冊 CORS 的 Policy,如下:
Startup.cs
1 | public class Startup |
若要同意所有跨域來源都能呼叫的話,可以把
WithOrigins()
改為AllowAnyOrigin()
3. 套用 Policy
套用 Policy 有兩種方式:
- 全域套用
- 區域套用
3.1. 全域套用
在 Configure 註冊 Policy,所有的 Request 都會套用。
Startup.cs
1 | public class Startup |
3.2. 區域套用
可以在 Controller 或 Action 掛上 [EnableCors("PolicyName")]
,套用 Policy 到 Controller 或 Action 上。
Controller
1 | [ ] |
Action
1 | [ ] |
執行結果
程式碼下載
參考
Enabling Cross-Origin Requests (CORS)
ASP.NET Core and CORS Gotchas