<script type="text/javascript">
function ranking(){
var myForm = document.getElementById("form1");//传入表单元素form1
var url = '/official_website/api/data/classRank.do';
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true); // 也可以使用GET方式,根据接口(相当于打开建立通道)
xhr.setRequestHeader("xxx","xxxxxx");//设置头部信息
xhr.send(new FormData(myForm));//发送数据
xhr.responseType = "blob"; // 返回类型blob
// 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
xhr.onload = function () {//XMLRequest.onload当请求发送成功时接收一个函数相当于ajax的回调函数success:function(){},onload是事件处理程序,当程序处理完毕后直接响应页面
// 请求完成
if (this.status === 200) {//如果页面状态正常接收数据
// 返回200
var blob = this.response;//响应数据
var reader = new FileReader();
reader.readAsDataURL(blob); // 转换为base64,可以直接放入a表情href
reader.onload = function (e) {//e指代的是当前事件,为了兼容性处理,了加可不加
// 转换完成,创建一个a标签用于下载
var a = document.createElement('a');
a.download = '班级下载.xlsx';//a标签的下载属性download
a.href = e.target.result;//result是最后一次点击超链接这个事件的时候target将这个文件重定向到当前窗口打开
$("body").append(a); // 修复firefox中无法触发click
a.click();//模拟鼠标点击
$(a).remove();//移除超链接
}
}
};
}
</script>
参考文章:https://my.oschina.net/watcher/blog/1525962#h2_4