一、代码下载的zip与postman下载的zip文件对比,大小不一样,postman下载的文件可以正常解压,代码下载的文件解压报错,如下图;

 

 

 

 

二、上代码

  axios({
    method: 'post',
    url: url,
    headers: {
      'content-type': 'application/json;charset=utf-8',
    },
    responseType: 'blob',
    data: data
  }).then(res=>{
    console.log(res)
    let blob = new Blob([res.data], {type: 'application/zip'});
    if ('download' in document.createElement('a')) { // 非IE下载
      const elink = document.createElement('a')
      let fileName= window.decodeURI(res.headers['content-disposition'].split('=')[1], "UTF-8")
      elink.target = "hrefTemplate";
      elink.download = fileName;
      elink.href = URL.createObjectURL(blob)
      elink.click()
      URL.revokeObjectURL(elink.href) // 释放URL 对象
    } else { // IE10+下载
      navigator.msSaveBlob(blob, fileName)
    }
  })

 

三、对比打印结果,如下图, 分析得出原因:使用了mockjs模拟数据 导致的返回结果错误,解决办法就是注释掉mock引用。

     

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/zhinian-/p/15070207.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!