vue axios 下載流文件zip包 沒法打開/解壓 postman測試下載一切正常

1、代碼下載的zip與postman下載的zip文件對比,大小不同,postman下載的文件能夠正常解壓,代碼下載的文件解壓報錯,以下圖;ios

 

 

 

 

2、上代碼json

  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)
    }
  })

 

3、對比打印結果,以下圖, 分析得出緣由:使用了mockjs模擬數據 致使的返回結果錯誤,解決辦法就是註釋掉mock引用。axios

     

相關文章
相關標籤/搜索