2

如何获取(非 ajax)图像请求的响应。

使用 jQuery 我正在做:

$('#myimg').error(function(err) {
    console.error(err);
}

然而,这个 err 对象没有从服务器发送的响应。我可以在 chrome 开发工具中查看错误响应.. 这是此错误的预期响应,但是如何从 javascript/jquery 访问该消息?

4

2 回答 2

2

我不认为有一种方法可以做到这一点,
而是在引发错误事件时进行 ajax 调用

$('img').error(function(err){
    var src = $(this).attr('src');
    $.ajax(src,[settings]);
})
$('img')[0].src = "http://asdasdasd.com"​;​​​​​

ajax您将在调用的错误处理程序中得到响应

于 2012-11-30T12:02:59.910 回答
0

如果您指的是 HTTP 响应,我认为您无法通过 Javascript 获得它。说明您要实现的目标,并且可能还有其他适合您需求的解决方案。

我使用加载错误事件创建了一个小演示。

Javascript

$('img').load(function(e) {
    // Image loaded
    console.log(e.type, e);
})
.error(function(e) {
    // Failed to load image
    console.log(e.type, e);
    $(this).addClass('error');
    // NOTE: You could also change the src attribute.
});​

CSS

img {
    width: 200px;
    height: 200px;
    margin: 10px;
    background: url('http://placekitten.com/g/200/200') no-repeat;
}
.error { border: 2px dashed red; }​

HTML

<img id="img1" src="http://placekitten.com/200/200" />
<img id="img2" src="http://placekitten.com/no/such/file" />​
于 2012-11-30T12:18:55.867 回答