当做一个下载文件的功能时,后端返回的可能是一堆乱码,跟后端沟通,看怎么改,我在这里记录一下我当时的修改,机百度到的处理方案
首先前端的请求中需要设置responseType:‘arraybuffer’
exportManualCashData(params) {
return Fetch({
url: '/tmp/exportManualCashData',
method: 'get',
params: params,
responseType:'arraybuffer'
})
},
//导出接口
exportManualCashData(){
let params = {
path:this.item.path,
date:this.item.operateTime,
}
Service.exportManualCashData(params).then((res)=>{
console.log(res);
this.isExcel('xlsx','下载', res);
})
}
isExcel (type, name, data) {
const link = document.createElement('a')
const blob = new Blob([data])
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
link.setAttribute('download', `${name}.` + type)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
},
上面的代码中,导出接口exportManualCashData是我原本的下载操作接口,isExcel是解决乱码的问题,其中type是表格的后缀名,name是下载文件时的显示名,res是原本接口返回的乱码数据,