const res = await this.$axios({ method: 'get', url: ``, headers: {}, responseType: 'blob', }) const blob = new Blob([res.data], { type: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', }) const downloadElement = document.createElement('a') const href = window.URL.createObjectURL(blob) downloadElement.style.display = 'none' downloadElement.href = href downloadElement.download = row.fileName //下载后文件名 document.body.appendChild(downloadElement) downloadElement.click() //点击下载 document.body.removeChild(downloadElement) //下载完成移除元素 window.URL.revokeObjectURL(href) //释放掉blob对象
注意:设置 responseType: "blob" 无效时
解决办法:
mock模块会影响原生的ajax请求,使得服务器返回的blob类型变成乱码