javascript - 检测ajax响应的MIME类型

标签 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" />');

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

最佳答案

如果发生错误,您可以让 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/

相关文章:

Jquery 设置单选按钮选中,使用 id 和类选择器

javascript - 在非 IE 浏览器中使用 window.open 打开居中对齐窗口

PHP mail() 在收到 ajax POST 请求时不起作用

javascript - 如何使用 Parse.com Cloud DB 在 HTML 中使用 php 创建动态下拉列表

javascript - jQuery 事件触发器一旦写在开发人员控制台中,为什么?

php - 如何从ajax请求返回JSON格式的数组?

javascript - 退格键和空格键在 Firefox 中不起作用

javascript - JavaScript 单元测试的工作原理

javascript - 使用选项卡时 View 不会在 ionic 中更新

javascript - 为什么我似乎需要 Promise 和回调来将 JSON 数据公开给全局变量?