了解跨域資源共享(CORS)如何保護 Cloudflare 的 CDN 上緩存的資源,以及如何管理帶有 CORS 標(biāo)頭的資產(chǎn)。
概述
跨域請求即請求源站外部的網(wǎng)站資源。例如,a.example.com 嘗試提供來自 b.secondexample.com 的資源。CORS 會指示瀏覽器確認 a.example.com 是否允許跨域請求(例如來自 b.secondexample.com 的圖像或 JavaScript 資源)。瀏覽器不會加載 CORS 不允許的資源。
Cloudflare 通過以下方式支持 CORS:
基于 Host 標(biāo)頭、Origin 標(biāo)頭、URL 路徑和查詢識別緩存的資產(chǎn)。這允許不同的資源使用同樣的 Host 標(biāo)頭,但不同的 Origin 標(biāo)頭。
將 Access-Control-Allow-Origin 標(biāo)頭從源站傳遞到瀏覽器。
通過 Access-Control-Allow-Origin 標(biāo)頭,服務(wù)器可以指定與外部域名分享其資源的規(guī)則。當(dāng)服務(wù)器收到資源訪問請求時,它會響應(yīng)并提供一個 Access-Control-Allow-Origin 標(biāo)頭值。Access-Control-Allow-Origin 標(biāo)頭常應(yīng)用于 可緩存的內(nèi)容。根據(jù)請求中發(fā)送的 Origin 標(biāo)頭,Web 服務(wù)器可能會以不同的 Access-Control-* 標(biāo)頭作為響應(yīng)。
添加或更改 CORS 標(biāo)頭
如果您在源 Web 服務(wù)器上添加或更改 CORS 配置,按 URL 清除 Cloudflare 緩存時,不會更新 CORS 標(biāo)頭。您可以通過以下某種選項,強制 Cloudflare 檢索新的 CORS 標(biāo)頭:
更改文件名或 URL,以繞過緩存并指示 Cloudflare 檢索最新的 CORS 標(biāo)頭。
使用單文件清除 API 指定相應(yīng)的 CORS 標(biāo)頭和清除請求。
更新資源在源 Web 服務(wù)器上的最后修改時間。然后,完成完全清除,以便檢索資產(chǎn)的最新版本,包括更新后的 CORS 標(biāo)頭。