vue 处理后端返回的文件流,下载成excl文件,内容显示object,object

项目场景:

今天在和后台联调开发时遇到一个bug。
是一个勾选的数据进行导出生成excl文件,前端获取勾选数据的id,组成参数,请求后台,后台返回文件流,前端处理,浏览器自动下载成excl文件。


问题描述:

在这里插入图片描述

使用了Blob,前后端数据联调成功,数据返回也正常,但是下载好的excl文件打开没有内容,显示object,object。

解决方案:

axios({
    
    
     method: 'post',
     url:PramsUrl,
     data:preOrderNoIds,
     responseType:"arraybuffer"
}).then((res)=>{
    
    
      let url = window.URL.createObjectURL(new Blob([res.data], {
    
     type: '.xlsx' }));
      let a= document.createElement('a');
      a.style.display = 'none';
      a.href = url;
      a.setAttribute('download', `${
      
      this.downloadName}.xlsx`);
       document.body.appendChild(a);
       a.click();
       url = window.URL.revokeObjectURL(url);
       document.body.removeChild(a)
}).catch(error => {
    
    
        this.$message.error('导出失败')
});

猜你喜欢

转载自blog.csdn.net/qq_36873710/article/details/123270166