赞
踩
问题:前端访问导出接口无法直接下载文件,而是输出了文件流
原因:ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的
解决办法:在页面上添加a标签实现下载
代码如下:
export function _postf(url, params, errorback) { return new Promise((resolve, reject) => { axios.post(url, params, { responseType: 'blob' }) .then(res => { const aLink = document.createElement("a"); let blob = new Blob([res], { type: "application/vnd.ms-excel" }); aLink.href = URL.createObjectURL(blob); aLink.download = '导出下载.xlsx'; aLink.click(); document.body.appendChild(aLink); }) .catch((error) => { reject(error); }) }) }
至此问题解决
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。