如何从(非ajax)图像请求中获取响应。
使用jQuery我正在做:
$('#myimg').error(function(err) {
console.error(err);
}
但是,这个错误的对象没有从服务器发送的响应。我可以在chrome dev工具中查看错误响应..这是该错误的预期响应,但如何从javascript / jquery访问该消息?
答案 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 demo和load事件创建了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');