繁体   English   中英

在Ajax-Call之后从Java下载ZIP

[英]Download ZIP from Java After Ajax-Call

我遇到了问题,我在JAVA中创建了一个包含PDF文件的ZIP文件

@Override
@ResponseBody
@RequestMapping(value = "pdfDownload", method = RequestMethod.POST, produces = "application/zip")
public byte[] generatePDFs(
        @RequestParam(value = "date", required = true) String date,
        Principal principal,
        HttpServletResponse response) {

    String filename;
    PrintRequest pr = new PrintRequest ();
    List<String> pis = new ArrayList<> ();
    pis.add ("3453453535");
    pr.setDate ("032015");
    pr.setPids (pis);

    filename = pr.getDate () + ".zip";
    response.setContentType ("application/zip");
    response.setHeader("Content-Disposition", "attachment; filename="+ filename);

    return createZip (pr, principal);
}

创建ZIP文件可以正常工作,但是如果我用jQuery AJAX POST调用它,我将返回比特流,但无法下载该文件。

顺便说一句。 该文件是动态创建的,并不位于服务器上。

希望可以有人帮帮我。

最好的祝福!

如果您在ajax调用中对此方法提出请求,则结果字节流将位于javascript的result对象中。 那根本没有用。

您根本不应该在ajax调用中执行此操作。 要么生成指向请求url的普通html链接,要么在javascript中构建url并将其放入window.location

如果您需要发送POST,请制作一个html表单并将其发布。 您可以使用javascript填充数据,然后调用submit() 在此处查看更多详细信息: JavaScript发布请求(例如表单提交)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM