检测ajax响应的MIME类型

时间:2013-01-11 19:00:51

标签: javascript ajax jquery mime-types

我正在尝试在我的网站上加载图片,如果图片生成失败,我想显示一条短信,说明失败的原因。最好的方法吗?

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

但这并不能让您选择检查数据类型。

1 个答案:

答案 0 :(得分:2)

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

{"error": "something bad happened"}

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

$.ajax('/some/url')
    .done(function(response){
        if($.isPlainObject(response)){
            //....
        }
        else{
            //....
        }
    })