CORS (Cross-Origin Resource Sharing,跨來源資源共享) 是一種機制,允許瀏覽器向跨來源伺服器發出請求,從而克服了瀏覽器的同源政策限制。
同源政策是瀏覽器的安全功能,限制了從一個來源載入的文件或腳本如何與來自另一個來源的資源進行互動。所謂「同源」是指相同的通訊協定、網域名稱和連接埠號。
當前端應用需要存取不同來源的API時,就需要CORS支援。例如:
https://frontend.com
https://api.backend.com
沒有CORS,瀏覽器會阻止前端應用存取API服務。
CORS透過一系列HTTP標頭實現跨域存取控制:
由於瀏覽器會發送 Method::OPTIONS
的預檢請求,所以需要增加對此類請求的處理,需要把CORS中介軟體添加到 Service
上。
Salvo提供了內建的CORS中介軟體,可以輕鬆配置和使用。以下是範例程式碼:
注意.hoop(cors)中介軟體是作用在 Service
上的,注意.hoop(cors)中介軟體是作用在 Service
上的.注意.hoop(cors)中介軟體是作用在 Service
上的,而不是 Router
上的.
這樣可以自動處理option預檢.
範例程式碼
CORS中介軟體提供了多種配置選項:
透過合理配置CORS,可以既保證安全性,又滿足跨域存取的需求。