request的请求头设置
export const $downj = (url, params) => {
const option = {headers: {'Content-Type': 'application/json'}, responseType: 'blob'}
return axios.post(url, JSON.stringify(params), option).then(res => res).catch(error => {
console.log(error);
// Message.error('网络请求失败,请稍后再试!');
});
}
//下载 excel
util.downloadExcel=function(res,fileName){
// if(res.data.size<1000){
// var reader = new FileReader();
// reader.onload = e => alert(JSON.parse(e.target.result).msg);
// reader.readAsText(res.data);
// }else{
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
let downloadElement = document.createElement('a');
let href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
let header = res.headers['content-disposition'];
header = header.split(';');
let headerObject={};
header.forEach(item=>{
let param=item.split('=');
let key =param[0].trim();
let val = param[1]?param[1]:'';
headerObject=Object.assign({},headerObject,{[key]:val});
});
let resFileName = decodeURI(headerObject['filename']);
downloadElement.download =fileName?fileName:resFileName; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
// }
};