跨原始資源共用

支援XMLHttpRequests中的withCredentials屬性,可讓跨原始資源共用(CORS)請求包含多種請求類型的目標網域Cookie。

當用戶端要求資訊清單、區段或金鑰時,伺服器可設定用戶端必須傳遞的Cookie,才能進行後續的要求。 若要允許讀取和寫入Cookie,用戶端必須針對跨來源要求將withCredentials屬性設為true

要在播放給定媒體資源時啟用withCredentials對大多數類型請求的支援:

  1. 建立CORSConfig對象。

    var corsConfig = new AdobePSDK.CORSConfig();  
    corsConfig.enableEncryptionRequest = true; 
    
  2. corsConfig附加到NetworkConfiguration對象,並將useCookieHeaderForAllRequests設定為true

    var networkConfig = new AdobePSDK.NetworkConfiguration();  
    networkConfig.CORSConfig = corsConfig; 
    networkConfiguration.useCookieHeaderForAllRequests= true;
    
  3. MediaPlayerItemConfig對象中設定networkConfig

    var mediaPlayerItemConfig = new AdobePSDK.MediaPlayerItemConfig();  
    mediaPlayerItemConfig.networkConfiguration = networkConfig; 
    
  4. MediaPlayerItemConfig傳遞至MediaPlayer.replaceCurrentResource方法。

    var player = new AdobePSDK.MediaPlayer(); 
    mediaResource = new AdobePSDK.MediaResource(url, AdobePSDK.MediaResourceType.HLS);  
    
    player.replaceCurrentResource(mediaResource, mediaPlayerItemConfig);  
    
重要

useCookieHeaderForAllRequests標幟不會影響授權要求。 要為許可證請求將withCredentials屬性設定為true,您必須在保護資料中設定withCredentials屬性,或在保護資料的httpRequestHeaders中指定授權密鑰。 例如:

# Example 1 
{ 
    "com.widevine.alpha": {  
        "withCredentials":true,  
        "serverURL":  
          "https://wv.service.expressplay.com/hms/wv/rights/?ExpressPlayToken=[YOUR_TOKEN</i]" } 
} 
 
# Example 2 
{ 
    "com.widevine.alpha": { 
        "httpRequestHeaders": {  
            "authorization": "true"  
            }, 
        "serverURL":  
          "https://wv.service.expressplay.com/hms/wv/rights/?ExpressPlayToken=[YOUR_TOKEN</i>]" }
        } 
}

此標幟不會影響授權要求,因為有些伺服器會在回應中將Access-Control-Allow-Origin欄位設為萬用字元('*')。 但是,當憑證標幟設定為true時,萬用字元無法用於Access-Control-Allow-Origin。 如果您針對所有類型的請求將useCookieHeaderForAllRequests設為true,則授權請求可能會出現下列錯誤:

請記住下列資訊:

  • 當具有withCredentials=true的呼叫失敗時,瀏覽器TVSDK會重試沒有withCredentials的呼叫。
  • 使用networkConfiguration.useCookieHeaderForAllRequests=false進行呼叫時,會發出XHR請求,而不使用withCredentials屬性。

本頁內容