1 请求后台接口
request({
url: xxx,
method: 'post',
responseType: 'blob'
})
注意,此处的 responseType: 'blob' 不要加在 headers 的配置里面
2 前台接收后
axios.post.then(res => {
let blob = new Blob([res], { type: 'application/vnd.ms-excel;charset=utf-8'})
let url = window.URL.createObjectURL(blob)
let alink = document.createElement('a')
alink.style.display = 'none'
alink.href = url
alink.download = 'xxx.xlsx' // 配置下载后的名字和后缀格式
document.body.appendChild(alink)
alink.click()
URL.removeObjectRUL(url)
document.body.removeChild(alink)
})
-
这是成功后返回的Blob对象格式的内容,在按上面的方法就可以正常解析下载了
-
错误的情况:这种下载下来的内容,文件损坏不能打开。
- 这种情况返回的是一个 String 类型的结果。