原因:
- axios的配置错误和版本过低
- 错误的前端代码尝试通过
axios.post()
下载文件,但未正确设置responseType
和Content-Type
- 解决方案:更新axios版本并调整axios请求方式,确保responseType为’arraybuffer’
const raw = JSON.stringify({//查询参数})axios({method: 'post',url: `请求链接`,data: raw,responseType: 'arraybuffer', //1、注意:responseType arraybufferheaders: {'Content-Type': 'application/json; application/octet-stream', //2、注意Content-Type其他的Authorization:'Bearer xxxx'}}).then(function (data) {console.log(data)const blob = new Blob([data.data], { type: 'application/gzip' }) //'application/zip'const downloadUrl = window.URL.createObjectURL(blob)const link = document.createElement('a')link.href = downloadUrllink.setAttribute('download', 'file.gz') //file.zipdocument.body.appendChild(link)link.click()document.body.removeChild(link) //下载完成移除元素window.URL.revokeObjectURL(downloadUrl) //释放blob对象})