首发于 前端开发
Ajax无法导出excel问题

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; //阻止表单跳转

});

来实现的。

发布于 2018-08-15 14:05

文章被以下专栏收录