第一种方法:需要设置响应类型,这里还需要安装 npm install js-file-download --save ,然后引用 var fileDownload = require('js-file-download'),使用详情见github;
Vue.axios.post(url_post,params_post,{responseType: 'arraybuffer'}).then((res) => {
let fileName = res.headers['content-disposition'].match(/fushun(S*)xls/)[0];
fileDownload(res.data,fileName);
}).catch((res) => {
// 错误信息
})
如果不添加 responseType: 'arraybuffer' ,那么下载下来的文件会提示已损坏
第二种方法:需要设置响应类型,并用到Blob类型,了解Blob
Vue.axios.post(url_post,params_post,{responseType: 'arraybuffer'}).then((res) => {
let blob = new Blob([res.data], {type: "application/vnd.ms-excel"});
let objectUrl = URL.createObjectURL(blob);
window.location.href = objectUrl;
}).catch((res) => {
// 错误信息
})