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