今天有一个导出相应数据为excel表的需求。后端的接口返回一个数据流,一开始我用axios(ajax类库)调用接口,返回成功状态200,但是!但是浏览器没有自动下载excel表,当时觉得可能是ajax的安全性问题导致无法下载。下面列觉两种我测试成功的方式:

1.window.location.href = ‘接口地址’

 含义:当前页面打开URL页面.

 和在浏览器输入接口地址一样,可以下载excel文件.但是缺点是无法执行POST请求

2.利用隐藏表单解决(我这里假设加入了JQuery库):
var exportData = [ {'list1':'xiaodo1'}, {'list2':'xiaodo2'} ] //模拟后台需要接收的参数 let
form = $("<form>"); //创建form标签 form.attr("style","display:none"); from.attr(
"method","post");//设置请求方式 form.attr("action","接口地址"); //action属性设置请求路径 $("body"
).append(form);//页面添加form标签 let input1 = $("<input>") //创建input标签 input1.attr(
"type","hidden") //设置隐藏域 input1.attr("name","data") //设置发送后台数据的参数名 input1.attr(
"value",JSON.Stringify(exportData)); form.append(input1); form.submit();
//表单提交即可下载!
上面就是我测试成功的两种方法.后面我去百度了一下axios如何导出excel文件,发现也是可以的.

axios导出excel文件可以参考这篇文章:
https://blog.csdn.net/u013224660/article/details/79981350
<https://blog.csdn.net/u013224660/article/details/79981350>

谢谢!

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信