需求 导出xlsx
后端成功返回结果
这一串不知道什么东东
百度了一下发现前端需要使用new blob去操作
然后我的导出是这样的
导出不是文件类型错误就是[object, object], 郁闷一下午
后来发现直接responseType直接设置 blob 就行 返回之后不需要new blob()
更改之后
return axios
.post(
url,
{
dataList: params,
},
{
headers,
responseType: 'blob',
},
)
.then((response) => {
// 因为后端把文件类型和文件后缀都放在header里面
// 所以这里我要取header内容
const { headers } = response;
let url = window.URL.createObjectURL(response.data);
let link = document.createElement('a');
link.href = url;
link.download = headers['content-disposition'].split('=')[1];
document.body.appendChild(link);
link.click(); //点击下载
link.remove(); //下载完成移除元素
window.URL.revokeObjectURL(link.href);
});
这样就可以了 导出 xlsx文件就不会乱码了,
我后来又尝试了 new blob() 跟responseType: ‘blob’,设置的都打印对比了一下 并没有发现什么不同 虽然做出来了 但是还有点懵!! 还要研究研究