Servlet通过地址运行,而不是通过JS

时间:2016-07-21 11:07:09

标签: javascript java servlets

我有一个项目,后面有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表吗?如果是这样,我如何将生成的文件发送到客户端?

0 个答案:

没有答案