访问后端接口,返回文件流,通过文件流进行下载,发现这时总是报错,代码如下
const fileDownload = (e) => {
let list={
fileName:e.talentResume
}
resumeDownload(list).then(res => {
if(res.data.code ==="200") {
console.log(res)
try {
const link = document.createElement('a');
//如果文件类型不确定的时候,可以不设置type
let blob = new Blob([res.data]);
link.style.display = 'none';
// 兼容不同浏览器的URL对象
const url = window.URL || window.webkitURL || window.moxURL;
link.href = url.createObjectURL(blob);
link.setAttribute('download', e.talentName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
url.revokeObjectURL(link.href);//销毁url对象
} catch (e) {
console.log('下载的文件出错', e)
}
//dataToFile(res.data)
}
}).catch(err => console.log(err))
}
const link = document.createElement('a');这一行报错,第一个console能够打印,定位的时候发现就是这一行报错的,但是浏览器控制台中没有报错信息。这是哪里的问题?!
你把 const link 换成 let link 试试
try中,每一行代码下console.log 输出下,先确定那行报错,在找具体问题, 声明变量用var 或者 let