2013-03-24 54 views
0

我需要通过Javascript加载图像,但如果失败,请了解404和500错误之间的区别。从jQuery图像中的error()事件中检索HTTP状态码。

我有代码,图像加载到像下面的“IMG”标签:

var img = $('<img />').attr('src', url) 
    .load(function() { 
     // Do something. 
    }) 
    .error(function(ev) { 
     // What sort of error? 
    }); 

在错误()函数,似乎我不能够告诉错误是否是500或一个404.有没有办法做到这一点?

+0

我很惊讶,'.error'在所有工作!它不应该。为什么jQuery会关心你设置'src'属性与其他属性?如何/为什么它甚至能够钩入页面上的元素的HTTP请求? – Brad 2013-03-24 17:00:15

+0

它是记录功能:http://api.jquery.com/error/ – Paul 2013-03-25 08:54:31

+0

有趣!我不知道。 – Brad 2013-03-25 13:12:00

回答

1

手柄和测试http status page这样

DEMO

var img = $('<img />') 
    .load(function() { 
     // Do something. 
    }) 
    .error(function(jqXHR, error, errorThrown) { 
     if(jqXHR.status&&jqXHR.status==404) 
     { 
      alert(jqXHR.responseText); 
     } 
     else 
     { 
      alert("Something went wrong"); 
     } 
    }) 
    .attr('src', url); 
+1

在Chrome中,jqXHR.status似乎始终为空。因此,我似乎总是得到'出事了'的警报。 – Paul 2013-03-25 16:50:22

+0

我没有试验你的问题。这里是一个例子:http://jsfiddle.net/UQTY2/38/ – sdespont 2013-03-26 06:34:39

+0

它的工作在铬。 – 2013-03-26 06:48:15