//下载操作
download() {
axios({
url: '/download/sms',//请求路径
method: 'post',//请求方式
data: this.queryForm,//传递的数据
responseType: 'blob',//接收数据格式 转为blob
headers: {
'Content-Type': 'application/json' //请求数据格式
}
})
.then((res) => {
//blob 数据内容在res.data中
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'
});
//文件名
const fileName = '短信列表.xls';
const linkNode = document.createElement('a');
linkNode.download = fileName; //a标签的download属性规定下载文件的名称
linkNode.style.display = 'none';
linkNode.href = URL.createObjectURL(blob); //生成一个Blob URL
document.body.appendChild(linkNode);
linkNode.click(); //模拟在按钮上的一次鼠标单击
URL.revokeObjectURL(linkNode.href); // 释放URL 对象
document.body.removeChild(linkNode);
})
.catch((err) => {
console.log(err);
});
//需要注意的是,后端传递的直接是文件流,所以,如果前端写了过滤,需要处理此过滤,防止拦截