关于xlsx下载一直报错问题记录

首先,有两个导出xlsx接口,其中一个已经对接完成,另一个导出一直失败,遂查看原因;

导出成功的接口返回图如下:

导出失败的接口返回图如下:

此时我一直认为接口返回的数据格式有问题,然后去看我的代码,

接口代码:

javascript 复制代码
// 问题导出
  static chunkExport(data: any) {
    return request<any>({
      url: `${BASE_URL}/chunk/export`,
      method: "post",
      data,
      responseType: "blob",
    });
  }

我发现我已经设置了 responseType: "blob",然后就去看我的request.ts代码,如下:

javascript 复制代码
// 检查配置的响应类型是否为二进制类型('blob' 或 'arraybuffer'), 如果是,直接返回响应对象
    if (response.config.responseType === "blob" || response.config.responseType === "arraybuffer") {
      if (response.data.type !== "application/json") {
        return response;
      }
      response.data = await handlerBlobJson(response.data);
    }

随后,检查接口的响应标头中的Content-Type,

导出成功的Content-Type图如下:

导出失败的Content-Type图如下:

然后发现接口返回的Content-Type值错误,在我的响应拦截器被拦截,走了错误的逻辑,二进制文件当作 JSON 文本解析,导致JSON.parse报错。

相关推荐
winfredzhang1 天前
一个 HTML 文件的备忘录:纸间备忘(Memo on Paper)源码全解析
前端·html·导出·localstorage·备忘录·json和html
core5127 天前
如何从多架构 Docker 镜像中导出指定的 ARM64 版本
华为·docker·架构·镜像·导出·多架构
猎人在吃肉2 个月前
Notepad++ 快捷键配置文件的导入和导出
notepad++·导出·快捷键·导入·配置文件
xurime2 个月前
Excelize 开源十周年,发布 2.11.0 版本
golang·开源·github·excel·导出·导入·excelize·基础库
HelloAldis3 个月前
Java 库 univer-lib:让 Univer Sheets 与 xlsx 无损双向转换
java·开发语言·xlsx·univer
奔跑的呱呱牛5 个月前
前端/Node.js操作Excel实战:使用@giszhc/xlsx(导入+导出全流程)
前端·node.js·excel·xlsx·sheetjs
Highcharts.js5 个月前
Highcharts 前端导出详解:如何实现纯客户端导出(Offline Exporting)
前端·客户端·导出·highcharts·导出图片
Highcharts.js5 个月前
Highcharts 命令行渲染指南:如何使用 Node 导出服务器批量生成图表图片
服务器·数据可视化·导出·命令行·图表·highcharts
奔跑的呱呱牛5 个月前
xlsx 已停止维护且存在漏洞!推荐一个可直接替代的 npm 库
前端·npm·node.js·xlsx·sheetjs
winfredzhang5 个月前
Python 从零打造桌面文件管理工具开发全过程实录与源码深度解析
python·pdf·视频·图片·docx·xlsx