解决方案:因为要带token所以不能直接a标签下载,所以用到axios
axios配置headers和responseType,处理请求回来的数据
import axios from 'axios';
let params={
name:'123'
}
axios({
method: 'GET',
url: API.URL_GET_LGYEXPORT_LOGTABLE_DO,
headers: {
JToken: this.$JToken.get()//项目中自取token
},
params,//params传参
responseType: 'blob'// 期待的响应类型是 blob
}
).then(res => {
// 处理 Blob 响应体
const blob = res.data
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = '操作日志表.xls' // 设置下载文件的名称
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(url) // 清理对象URL
})