【问题标题】:Detect MIME type of ajax response检测 ajax 响应的 MIME 类型
【发布时间】:2013-01-11 19:00:51
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript ajax jquery mime-types


【解决方案1】:

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

{"error": "something bad happened"}

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

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

【讨论】:

    猜你喜欢
    • 2011-12-01
    • 2012-04-11
    • 1970-01-01
    • 2015-10-05
    • 2010-10-13
    • 2016-05-20
    • 2019-02-04
    • 2011-04-29
    • 2010-11-25
    相关资源
    最近更新 更多