2

我正在尝试在我的网站上加载图像,如果图像生成失败,我想显示一条关于失败原因的文本消息。最好的方法?

这是我尝试过的,但图像数据显然被解释为字符串。(我的 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" />');

但这并没有给您检查数据类型的选项。

4

1 回答 1

2

如果发生错误,您可以让您的 ajax 调用返回“application/json”的内容类型。就像是:

{"error": "something bad happened"}

然后在您的回调中,您可以检查它是对象还是字符串:

$.ajax('/some/url')
    .done(function(response){
        if($.isPlainObject(response)){
            //....
        }
        else{
            //....
        }
    })
于 2013-01-11T19:08:00.283 回答