下面代碼實(shí)現(xiàn)下載文件功能
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);
})
}
問題:
發(fā)現(xiàn)火狐部分版本在觸發(fā)點(diǎn)擊事件后無效;
解決方案:
創(chuàng)建事件牧抵,a標(biāo)簽觸發(fā)
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);
})
}