ASP.NET Core 跨域請求 (Cross-Origin Requests)

李昀峻 2020/12/03 12:45:36
2999

什麼是CORS?

 

CORS:Cross Origin Resource Sharing,跨來源資源共用

瀏覽器安全性可防止網頁對不同的網域服務之 web 網頁提出要求。

這項限制稱為同源原則。 同源原則會防止惡意網站從另一個網站讀取敏感性資料。

 

當我們專案使用前後端分離時,放在不同網域執行,就會遇到瀏覽器安全性的問題,

 

A Domain 呼叫了 B Domain 的跨域請求 Cross-Origin Requests (CORS),瀏覽器基於安全性考量,並不允許這種情況發生

 

註冊 Policy

在 ASP.NET Core 中使用 CORS,需要 Microsoft.AspNetCore.Cors 套件

ASP.NET Core 中使用 CORS 只要在 Startup.ConfigureServices 呼叫 AddCors,就能註冊 CORS 的 Policy 規則

 

Startup.cs

AllowAnyOrigin() 是允許來自任何配置的所有原始網域

也可以使用 WithOrigins()

把信任的網域清單放到appsetting.Json裡面

全域套用

Startup.cs

使用appsetting.Json來調整是否開啟CORS

區域套用

可以在 Controller 或 Action 掛上 [EnableCors("Policy 名稱")],套用 Policy 到 Controller 或 Action 上。

方法二

修改 Chrome 瀏覽器安全性設定,解決網頁開發階段 Access-Control-Allow-Origin 問題。

直接修改桌面上的 Google Chrome 

瀏覽器的捷徑,把這裡新增的參數貼上去。

這方法只適合開發階段使用

李昀峻