我正在尝试在我的网站上加载图像,如果图像生成失败,我想显示一条文本消息以说明失败的原因。最好的方法是做到这一点?
这是我尝试过的,但图像数据显然被解释为字符串。 (我的 imgContainer 中出现了一堆乱码)。
function GetImage(id) {
$.get('ajax/getImage', { Id: id }, function (data) {
if (typeof data == "string") {
$('div#imgContainer').html(data);
} else {
$('img#imgViewer').attr('src', data);
}
});
}
编辑
看来我的错误更多是您无法像我上面所做的那样将图像数据设置为 src 属性。据我所知,您需要将 src 直接设置为链接,例如:
$('div#imgContainer').html('<img src="ajax/getImage" />');
但这并没有为您提供检查数据类型的选项。
最佳答案
如果发生错误,您可以让 ajax 调用返回内容类型“application/json”。类似于:
{"error": "something bad happened"}
然后在回调中,您可以检查它是对象还是字符串:
$.ajax('/some/url')
.done(function(response){
if($.isPlainObject(response)){
//....
}
else{
//....
}
})
关于javascript - 检测ajax响应的MIME类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14284913/