我有个问题,我用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调用它,结果我会得到比特流,但不能下载该文件。
顺便说一句。文件是动态创建的,不位于服务器上。
希望有人能帮我。
诚挚的问候!
发布于 2015-02-18 13:36:02
如果在ajax调用中请求此方法,则生成的字节流将位于javascript中的结果对象中。一点用都没有。
您不应该在ajax调用中这样做。要么生成指向请求url的普通html链接,要么在javascript中构建url并将其放在window.location中。
如果您需要发送一个POST,创建一个html表单并发布它。您可以使用javascript填充数据,然后调用submit()。有关更多详细信息,请查看此处:JavaScript post request like a form submit
https://stackoverflow.com/questions/28584823
复制相似问题