You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么jQuery AJAX返回字符串[Object blob]而非blob对象?

问题根因
  • 核心错误是调用$.ajax时没有显式指定dataType: 'blob'参数。jQuery 3.3.1 版本默认会自动推断响应数据类型,在未明确声明返回blob的情况下,框架会尝试将响应转为文本格式,原生Blob对象在此过程中被强制调用toString()方法,最终得到长度为13的"[object Blob]"字符串。
  • 原代码同时在xhrFields和自定义xhr回调中重复设置了responseType,属于冗余配置,二者保留任意一个即可,无需重复声明。
修正后的可用代码
jQuery.ajax({
    url: url,
    method: 'GET',
    dataType: 'blob', // 必须显式指定返回数据类型为blob
    cache: false,
    xhrFields: {
        responseType: 'blob'
    },
    success: function(data) {
        // 此处data为正常的Blob对象
        console.log(data instanceof Blob); // 输出true
    }
});
补充说明

jQuery 3.0 及以上版本已经原生支持dataType: 'blob'配置,只要正确声明该参数,无需自定义重写xhr回调,也可以正常获取到Blob对象。

内容的提问来源于stack exchange,提问作者Vivian River

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:24:02