如果文件在javascript或jQuery的不同服务器上,是否可以检查文件是否返回404错误?

and*_*yen 11 javascript youtube ajax jquery http-status-code-404

如果文件使用jQuery/javascript在不同的服务器上,是否可以检查文件是否返回404错误?

我正在使用youtube api获取我正在嵌入的视频的高清屏幕截图,但它返回的JSON没有显示是否存在视频的高清屏幕截图.

屏幕截图的网址通常是 http://img.youtube.com/vi/ + video.ID + /maxresdefault.jpg

但是当它不存在时,我会得到这个丑陋的低分辨率灰色POS:http: //img.youtube.com/vi/MAyTES9gDAU/maxresdefault.jpg

所以,基本上,我想检查屏幕截图是否存在,如果不存在,请应用于display: none持有它的div.

SLa*_*aks 5

创建一个<img>指向该图像的元素,然后处理该onerror事件并将其隐藏。

  • 此解决方案不起作用。即使响应状态是 404,也永远不会触发 onerror 事件处理程序。 (3认同)

Ry-*_*Ry- 5

您可以创建一个Image对象,并处理onloadonerror.它只适用于图像,头脑.

function checkExists(imageUrl, callback) {
    var img = new Image();

    img.onerror = function() {
        callback(false);
    };

    img.onload = function() {
        callback(true);
    };

    img.src = imageUrl;
}
Run Code Online (Sandbox Code Playgroud)

像这样使用它:

checkExists(yourVideoUrl, function(exists) {
    if(!exists) {
        // Hide the image
    }
});
Run Code Online (Sandbox Code Playgroud)

这是一个演示.

  • 这不起作用.Youtube返回小灰色图像,因此函数返回true:http://jsfiddle.net/W8JVA/ (3认同)