JS实现Excel文件下载
后端提供了下载Excel文档的接口,前端通过ajax调用,发现调用成功了,返回一堆乱码,并没有真的把想要的Excel文档下载下来
调用下载Excel接口不能通过ajax,
也不能通过data传参,
接口传参需要拼接在接口后面,
无论是get请求还是post请求都要这么做,
然后通过js动态创建form表单标签,
通过调用form表单的submit方法来调用接口
// 触发下载点击事件
submitDown () {
// 创建form 标签
let _form = document.createElement('form')
// 接口 action 赋值 传参需要拼接在 ? 后面
_form.action = `http:// www.xxx.com/getForm?name=xxx&type=xxx`
// 提交方式赋值
_form.method = 'post'
// 将创建好的 form 标签放到body下面
document.body.appendChild(_form)
// 提交表单接口 (这时候就开始下载Excel文档了)
_form.submit()
// 最后删除创建的临时 form 标签
_form.remove()
},
执行完以上过程,
文档就成功下载到你的本地了!
网上查了一些资料说 window.location.href 也能实现,
但是我这里试了一下发现不好使,
只有创建临时form表单调接口这种方式好使。
以上希望能帮到你,
以后还会持续关注调用下载接口的其他方式,
如果你有好的解决方案欢迎留言一起讨论!