通过JS POST从Servlet下载文件

时间:2016-10-18 15:02:52

标签: javascript java http servlets

我使用JS获取变量,然后对Servlet进行POST调用。我没有明确地使用Ajax。

$('#download').click(function (e) {
....
        $.post('downloadServlet', {'var': variable});
        //e.preventDefault();
});

Servlet有代码来读取文件,理论上发送它,但我没有得到任何响应。

   @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
....
        response.setContentType("application/octet-stream");
        response.setContentLength(...);
        response.setHeader( "Content-Disposition", String.format("attachment; filename=%s", path.getFileName()));
        try (OutputStream out = response.getOutputStream()) {
            Files.copy(path, out);
            out.flush();
        }
        System.out.println("Done");

我的问题是为什么没有发送/接收文件?从技术角度来看,我不确定我理解为什么它不起作用,因为我没有使用Ajax。 POST方法似乎像任何正常的提交表单一样执行。我已阅读this但未澄清。任何教学解释都将受到赞赏。

0 个答案:

没有答案