本文介紹跨域訪問CDN加速的OSS資源失敗的原因和解決方案。
問題描述
在阿里雲OSS控制台設定了跨域CORS規則後,使用阿里雲CDN加速網域名稱訪問OSS資源失敗。
問題原因
通過OSS控制台配置CORS規則後,如果CDN節點緩衝了舊的、未配置CORS時的資源回應標頭,則新的跨域請求可能因為瀏覽器收到的是緩衝中的到期頭部資訊而失敗。
通過OSS控制台配置的CORS規則可能沒有設定為允許目標網域名稱進行跨域訪問,或者HTTP方法(如GET、POST、DELETE等)以及自訂要求標頭等沒有被正確指定。
解決方案
登入CDN控制台。
在節點HTTP回應標頭對話方塊,按以下說明分別配置自訂回應標頭參數以及對應的回應標頭值。
說明以下參數設定僅供參考,請結合實際情境調整各個配置項。
自訂回應標頭參數
回應標頭值
Access-Control-Allow-Origin
設定為萬用字元星號(*),並開啟跨域驗證。
Access-Control-Allow-Methods
POST,GET,HEAD,PUT,DELETE
Access-Control-Max-Age
3600
配置效果如下圖所示:
配置以上參數後,通過CDN節點訪問都會包含以上3個Header資訊,且確保跨域校正時可以正常使用。測試結果如下。