昨天根据需求做了一个点击按钮下载模板(模板为excel表格)的功能,根据后台给的接口,我是用ajax方法对接,返回状态码200,但是没有任何反应,表格压根没有下载! 百度了下,使用window.location.href 解决了。总结下请求表格两种方法:
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();//表单提交即可下载!