Javascript图像加载:获取错误状态

Javascript图像加载:获取错误状态,javascript,image,load,content-type,response.contenttype,Javascript,Image,Load,Content Type,Response.contenttype,我正在通过javascript加载图像: myimage.src = "/mycontroller/mymethod"; myimage.alt = "image"; myimage.onload = function(){ $('body').append(myimage); }; 但是,有时我的控制器方法应该返回一个错误,http状态为500。因此,内容类型将不再是image/png。将是文本 有一种方法可以在加载图像时识别此错误,获取错误消息并显示警报?如果该方法不能保证

我正在通过javascript加载图像:

myimage.src = "/mycontroller/mymethod";
myimage.alt = "image";
myimage.onload = function(){
    $('body').append(myimage);
};    
但是,有时我的控制器方法应该返回一个错误,http状态为
500
。因此,内容类型将不再是
image/png
。将是文本

有一种方法可以在加载图像时识别此错误,获取错误消息并显示警报?

如果该方法不能保证成功,更好的解决方案是让您的方法返回加载图像或显示错误的Javascript代码。据我所知,没有办法判断指向图像的URL实际上是图像还是文本数据。如果有人能提供一个证明我错了的答案,我会很高兴的

您可以对图像使用onError事件来告诉您是否存在有效的图像文件

例如:

假设您有一个包含5个图像文件的目录:img1.jpg、img2.jpg、img3.jpg、img4.jpg和img5.jpg

这是每次单击图像时更改显示图像的网页代码:

[html]

[javascript]

var number = 1;
function changeImage() 
{
number++;
document.getElementById("image").src = "img" + number + ".jpg";
}

function error()
{
alert("This image does not exist");
}
通过此设置,当您第五次单击图像时,图像标签的onError事件被触发,您将调用显示错误消息的函数。让您知道文件img6.jpg不存在。现在,有一些方法可以操纵此事件来浏览本地目录,但在某些方面受到限制。如果它是一个实际的属性,并且为它指定了一个真/假值,这样就可以将它用作测试条件,那么它将更加有用

由于无法将其用作测试条件,因此必须等待页面识别错误并将其报告给脚本,这会在使用基于时间的脚本(如使用setInterval的上)时造成混乱


希望这个答案能帮助以后阅读这个问题的人,因为我的答案晚了一年多…

我认为这是最好的方法。图像有
错误
加载
事件,但它们在不同浏览器IIRC中的处理方式不同-有些将仅在成功加载时归档
加载
,而不会在错误时归档,但不会触发
错误