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

use*_*249 2 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
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Ble*_*der 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');
};
Run Code Online (Sandbox Code Playgroud)

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

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

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