3

我試圖從S3加載視頻,該視頻可能在當時可能轉碼,也可能不轉碼。雖然它還在處理中,但我得到了403響應。其他瀏覽器我測試(鉻/火狐/ IE)觸發「錯誤」事件,所以我可以像這樣顯示一條消息向用戶:Safari視頻元素不會在403響應中觸發錯誤事件

var video = document.createElement('video'); 
video.onerror = function (e) { 
// Show the user a message... 
}; 
video.src = videoURL; 

但Safari瀏覽器(在OSX)剛剛記錄到控制檯而不觸發事件。

無法加載資源:服務器的狀態爲迴應403(禁止)

,如果我做了video.src,導致沒有一個垃圾URL它會觸發,但它不會爲一個403.

是否有其他事件我可以聽或另一種方式來警告用戶?我知道我大概可以爲視頻製作一個單獨的ajax請求並檢查響應,但我想避免開銷。

回答

0

這是Webkit中的一個錯誤。

我們通過在嘗試加載視頻之前首先進行HEAD請求以檢查文件的狀態來處理此問題。增加往返行程,但通常相當快:

$.ajax({ 
    type: "HEAD", 
    url: video_filename, 
    success: loadVideo, 
    error: handleError 
}); 
相關問題