从img请求获取响应

时间:2012-11-30 11:50:10

标签: jquery error-handling image

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

使用jQuery我正在做:

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

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

3 个答案:

答案 0 :(得分:2)

我认为没有办法做到这一点 你可以做的是在发生错误事件时进行ajax调用

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

您将在ajax调用

的错误处理程序中获得响应

答案 1 :(得分:0)

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

我使用small demoload事件创建了error

<强>的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" />​

答案 2 :(得分:0)

这很简单。试试这个:

$('#myimg').load(function() {
    console.log('Done!');
}).error(function(err) {
    console.log('Type: ' + err.type);
    console.log('Target: ' + err.currentTarget);
}).attr('src', '../img/logo2.png');