我有一个项目,后面有servlet,前面有JS。
当我通过在浏览器中粘贴地址来运行servlet时,它工作正常。但是当我想用JS中的按钮运行它时,没有任何反应。
的Servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ExcelParser ep = new ExcelParser();
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheetl");
response.setHeader("Content-Disposition", "attachment; filename=workbook.xlsx");
XSSFWorkbook workbook = ep.getWorkbook();
ServletOutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
JS
Template.exportButton.events({
"click #exportButton": function (event) {
document.getElementById("exportButton").innerHTML = "Started";
$.get("https://mypage/pu/rec/build/positions/excel");
document.getElementById("exportButton").innerHTML = "Finished";
}
});
但是当我点击页面上的导出按钮时,它会将文本更改为"已完成",但不会执行servlet。
我有另一个类似于上面的servlet和带有
的JS按钮$.get("https://mypage/pu/rec/build/positions/back?email=" + email, function (data) {});
它有效。如何用JS运行这个servlet?
编辑: 问题必须与servlet有关。我已经将exportButton中的地址更改为第二个并且它可以正常工作("后退" servlet在服务器上运行sh脚本)。是因为我尝试在我的servlet中发送excel表吗?如果是这样,我如何将生成的文件发送到客户端?