Ajax无法导出excel问题
最近做了一个导出页面日志的小功能模块
具体:根据日期将管理员日志导出
把下面这个列表内的每一条数据导出到excle里
点击导出excel按钮时将两个日期传到后台,由后台做导出功能
(选择时间用的是layui时间表和表格)
最开始做的简单版本里没有加时间判定,仅仅是简单的全部导出
所以我用的是 locationhref(""); 直接请求的,实现了功能
但是因为现在要把时间参数传到后台,我就使用的ajax的post请求带了两个参数
form.on('submit(form)', function(data) {
$.ajax({
url: "#(ctx)/cs/clientLog/toExcel",
type: "post",
async: false,
data: {
time1: JSON.stringify(time1), // 开始时间
time2: JSON.stringify(time2) // 结束时间
},
dataType: 'json',
success: function (data) {
msg = data.code;
}
});
return false; //阻止表单跳转
});
结果后台怎么处理,页面都无法下载excel
最后发现是ajax无法处理下载请求
ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,所以ajax无法处理二进制流的response来下载文件
最后我是通过
form.on('submit(form)', function(data) {
var time = time1 +","+time2;
console.log(time);
locationhref("#(ctx)/cs/clientLog/toExcel?time="+time);
return false; //阻止表单跳转
});
来实现的。