|
问题:
后端写的导出excel的接口,前端需要调用接口去下载文件;同时,需要带上token的方法 方法: 1. 直接axios 请求,头部带上token即可 2. 需要将后台返回的文件流,转成文件进行下载; 代码如下: downFun() {
axios({
method: "POST",
url: `/api/visitor/company/importTemplate`,//get也可以url?k=v&k2=v2
responseType: 'arraybuffer', // 或者responseType: 'blob'
xsrfHeaderName: 'Authorization',
data:{},//post携带参数
//params:{},get携带参数
headers: {
'Content-Type': 'application/json',
'Authorization': getToken()
}
}).then(res => {
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'//下载excel 也可下载zip压缩包 application/zip'
})
const objectUrl = window.URL.createObjectURL(blob)//可以直接下载的url链接
window.location.href = objectUrl
/*点击下载2
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', 文件名)
document.body.appendChild(link)
link.click()
*/
}).catch(err => {
console.log(err)
})
}
参考: 请求二进制文件数据流下载文件携带token带参数 |
|
|