后端响应报文主体为流文件时怎么处理并下载该文件

192 阅读1分钟

1.本人业务是需要点击一个按钮导出对应的excel数据并在浏览器下载该文件。

2.个人遇到的坑有两点:

  • 我们在做响应拦截器时没有考虑到流文件的情况,当时为了方便,就对响应的内容统一做了处理,只拿到response.data数据。
  • 在写请求函数时,必须要有responseType:'blob'。

3.在业务代码中的实现

exportData(obj).then({
  onst blob = new Blob([res.data]);
  //saveAs(blob, "加班统计表.xls");
  const file = window.URL.createObjectURL(blob);
  console.log("log", blob);
  const a = document.createElement("a");
  a.download = `加班统计表.xls`;
  a.href = file;
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
})
c
特此记录,以期提醒。