Cors是什麼意思

CORS 是 Cross-Origin Resource Sharing 的縮寫,它是一種Web標準,用於允許Web應用程式(通常是一個瀏覽器中的JavaScript應用程式)向伺服器發出跨源HTTP請求。

在瀏覽器中,"源"(origin)是指一個由協定、域名和埠組成的標識符。例如,如果一個網站的URL是 https://example.com:8080,那麼這個網站的源就是 "https://example.com:8080"。當一個網頁試圖向不同的源(例如,不同的域名、埠或協定)發出請求時,這被稱為跨源請求

在傳統的Web瀏覽中,為了防止跨站腳本攻擊(XSS),瀏覽器有一個同源策略,這意味著資源(如圖像、腳本、樣式表、框架和XMLHttpRequest請求)只能來自與當前網頁相同的源。

CORS 通過向伺服器傳送額外的請求(稱為"預檢請求")來擴展同源策略,以確定伺服器是否允許來自不同源的請求。如果伺服器允許跨源請求,它將返回一個特殊的標頭,允許瀏覽器發起實際的請求。

CORS 支持兩種類型的請求:簡單請求和預檢請求。簡單請求可以直接發起,而預檢請求需要在發起實際請求之前先傳送一個預檢請求來檢查伺服器是否允許該類型的請求。

簡單請求是指符合以下條件的請求:

如果請求不符合簡單請求的條件,或者需要使用非簡單請求的方法或頭部欄位,那麼瀏覽器將首先傳送一個預檢請求(OPTIONS方法)來詢問伺服器是否允許該請求。伺服器將返回一個允許的頭部欄位列表,以及是否允許請求的其他信息。

CORS 是一個複雜的主題,涉及到許多細節,包括如何配置伺服器以允許跨源請求,以及如何在 JavaScript 中處理跨源請求。它對於理解現代 Web 應用程式如何與不同的源進行互動是非常重要的。