下载文件-post方式
axios({ // 用axios发送post请求 method: 'post', url: '', // 请求地址 data: req, // 参数 headers: { 'content-type': 'application/json; charset=utf-8', }, responseType: 'blob', // 表明返回服务器返回的数据类型 }).then((res) => { downloadFile (res.data); });
const downloadFile = (data) => {
let blob = new Blob([data]);
let url = window.URL.createObjectURL(blob);
const link = document.createElement('a'); // 创建a标签
link.href = url;
let date = new Date();
link.download = 'xx.xls'; // 重命名文件
link.click();
URL.revokeObjectURL(url); // 释放内存
};
fetch('/xxx' , { method: 'POST', body: JSON.stringify(params), credentials: 'include', headers: new Headers({ 'Content-Type': 'application/json', }) } ).then(res => res.blob().then(blob => {
let fileReader = new FileReader()
fileReader.readAsText(blob, 'utf-8')
fileReader.onload = function () {
try {
let info = JSON.parse(fileReader.result);//可以获取到返回的信息 进行报错提示
} catch (err) {}
}
let a = document.createElement('a'); let url = window.URL.createObjectURL(blob); a.href = url; a.download = '【下载下来的文件名】.xlsx' a.click(); window.URL.revokeObjectURL(url); }))