使用jQuery / JS检查图像HTTP状态代码?

时间:2013-01-09 00:51:17

标签: javascript jquery http http-headers

是否可以使用jQuery / JS检查图像的状态代码?

例如,

img1 = "http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/260px-YellowLabradorLooking_new.jpg";

if(statusCheck(img1) == 404){
    /do something
}elseif(statusCheck(img1) == 403){
    //do something else
}elseif(statusCheck(img1) == 304){
    //do something else
}

由于

1 个答案:

答案 0 :(得分:6)

您可以构建一个Image对象,该对象不受跨源限制的影响:

var image = new Image();
image.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/260px-YellowLabradorLooking_new.jpg"

image.onload = function() {
    alert('Image has loaded');
};

image.onerror = function() {
    alert('Image did not load');
};

图像加载是异步的,因此创建一个返回错误代码的函数不是一个好主意。

演示:http://jsfiddle.net/Blender/apyL7/

此外,似乎没有办法获取响应代码,因此您只能知道是否加载了图像。