问题遇到的现象和发生背景
我用ajax发的post请求,后台也写入到输出流了,但是就是不下载文件,网上说不能用ajax发送,不支持导出excel,那应该怎么导出呢?
问题相关代码,请勿粘贴截图
function exportApiDemo() {
debugger
var $ = layui.jquery;
var ctx = top.global.ctx;
var table = layui.table;
var layer = layui.layer;
var file1 = table.checkStatus('test')
, data = file1.data
, length1 = data.length
if (length1 < 1) {
layer.alert('请至少选择一行!');
return false
}
$.ajax({
url: ctx + '/cadre/HeadOfficeOfCityCompanyFourLevel/exportExcel',
type: "post",
dataType: "json",
data: JSON.stringify(data),
headers:{
'Content-Type':'application/json;charset=UTF-8',
},
})
}
后台用导出流
try {
response.setContentType("application/octet-stream; charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename=" + Encodes.urlEncode("四级管理人员.xlsx"));
ouputStream = response.getOutputStream();
workBook.write(ouputStream);
//关闭流
ouputStream.flush();
ouputStream.close();
} catch (IOException e) {
// log.error("ouputStream_Close_Fail_" + e.getMessage(), e);
e.printStackTrace();
}