下面代码实现下载文件功能
export function commonRequest(url,params,method="post",filename = '模板.xls') {
return request({
url: url,
method:method,
data:method.toLocaleLowerCase() !=='get'?params:'',
responseType:'blob',
// headers
}).then(res=>{
const link = document.createElement('a');
// const filename = decodeURIComponent((getItem('contentFileName')));
link.download = filename;
link.href = URL.createObjectURL(res)
link.click()
}).catch(err=>{
// console.log(err,666);
})
}
问题:
发现火狐部分版本在触发点击事件后无效;
解决方案:
创建事件,a标签触发
export function commonRequest(url, params, method = "post", filename = '模板.xls') {
return request({
url: url,
method: method,
data: method.toLocaleLowerCase() !== 'get' ? params : '',
responseType: 'blob',
// headers
}).then(res => {
const link = document.createElement('a');
link.download = filename;
link.href = URL.createObjectURL(res);
var evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
link.dispatchEvent(evt);
}).catch(err => {
// console.log(err,666);
})
}