當您需要跨域共用或者訪問資源時,您可以通過自訂HTTP回應標頭來實現。通過本文您可以瞭解跨域共用的概念、配置邏輯和應用案例。

什麼是跨域資源共用

跨域資源共用CORS(Cross-Origin Resource Sharing)簡稱跨域訪問,是HTML5提供的標準跨域解決方案,允許Web應用伺服器進行跨域存取控制,使得跨域資料轉送得以安全進行。

跨域資源共用CORS資料互動示意圖: 示意图
CDN中開啟了跨域共用之後互動示意圖: 示意图

開啟跨域資源共用

  1. 登入 CDN控制台
  2. 在左側導覽列,單擊 域名管理
  3. 域名管理頁面,單擊目標網域名稱對應的 管理
  4. 在指定網域名稱的左側導覽列,單擊 缓存配置
  5. 單擊 自定义HTTP响应头頁簽。
  6. 單擊 添加,配置自訂HTTP回應標頭。
  7. 選擇 增加 並設定 自訂回應標頭參數 為“Access-Control-Allow-Origin”時,您可以開啟 跨域校正 功能。
    说明 跨域校正預設為關閉狀態,只有在 响应头操作為“增加”, 自定义响应头参数為“Access-Control-Allow-Origin”的時候才可以配置。
    • 開啟 :開啟狀態下CDN節點將按以下規則對使用者做跨域校正,並根據校正結果響應“Access-Control-Allow-Origin”的值。
    • 關閉 :關閉狀態下CDN節點不會校正使用者請求中攜帶的Origin頭,只會固定響應已配置的Access-Control-Allow-Origin值。

舉例

樣本一:如果跨域資源共用的回應標頭值設定了單個或者多個值(多個值之間用“,”分隔)。
  • 如果使用者要求標頭裡攜帶的“Origin”參數值與被設定的任意一個值精確匹配,就會響應對應的跨域頭。
  • 如果都沒有精確匹配上,則不響應跨域頭。

CDN上設定:Access-Control-Allow-Origin:http://a.com,https://c.com。

  • 如果使用者請求攜帶的origin頭是http://a.com,則CDN節點將會響應Access-Control-Allow-Origin:http://a.com。
  • 如果使用者請求攜帶的origin頭是http://c.com,則CDN節點將會響應Access-Control-Allow-Origin:http://c.com。
  • 如果使用者請求攜帶的origin頭是http://x.com,則CDN節點將不會響應Access-Control-Allow-Origin。

樣本二:如果跨域資源共用的回應標頭值設定了泛網域名稱,則會校正要求標頭中Origin值是否能匹配上Access-Control-Allow-Origin的泛網域名稱。

CDN上設定:Access-Control-Allow-Origin:http://*.example.com。
  • 使用者請求:Origin:http://a.example.com。CDN響應:Access-Control-Allow-Origin:http://a.example.com。
  • 使用者請求:Origin:http://b.example.com。CDN響應:Access-Control-Allow-Origin:http://b.example.com。
  • 使用者請求:Origin:http://c.com。CDN不響應。
  • 使用者請求:Origin:http://a.123.example.com。CDN響應:Access-Control-Allow-Origin:http://a.123.example.com。
  • 使用者請求:Origin:https://a.example.com。CDN不響應(協議頭不同,使用者請求的是HTTPS協議,CDN上設定的是HTTP協議)。