我正在尝试从S3加载可能当时或可能未进行转码的视频。虽然仍在处理中,但我收到了403响应。我测试的所有其他浏览器(Chrome / Firefox / IE)都会触发“错误”事件,因此我可以像这样向用户显示消息:
var video = document.createElement('video');
video.onerror = function (e) {
// Show the user a message...
};
video.src = videoURL;
但是Safari(在OSX上)只是登录到控制台而不会触发事件。
无法加载资源:服务器的响应状态为403(禁止)
如果将video.src设为垃圾URL,则该URL不会产生任何结果,但不会导致403。这会触发。
还有其他可以监听的事件,还是可以其他方式警告用户?我知道我可能可以对视频提出一个单独的ajax请求并检查响应,但我希望避免开销。
这是Webkit中的错误。
我们会先尝试发送HEAD请求以检查文件状态,然后再尝试加载视频,以解决此问题。添加往返,但通常非常快:
$.ajax({
type: "HEAD",
url: video_filename,
success: loadVideo,
error: handleError
});