1
我会尝试使用jquery和jax-rs下载pdf文件。该pdf文件将被动态创建。使用jax-rs下载jQuery的pdf
出于测试目的,我刚刚设置了本地pdf文件。我需要解析一些参数以便稍后生成PDF。我将发布这些参数到服务器,服务器发回一个pdf文件。现在我可以在JS端做什么来终于看到donwload窗口?
Java端:
@Path( “/ chatexport /”) 公共类ChatExportController {
private static final String FILE_PATH = "c:\\own\\test.pdf";
@POST
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces("application/pdf")
public Response getFile(List<ChatMessage> chatMessageList) {
File file = new File(FILE_PATH);
ResponseBuilder response = Response.ok((Object) file);
response.header("Content-Disposition",
"attachment; filename=new-android-book.pdf");
return response.build();
}
Javascript的侧面:
$.ajax({
type: "POST",
url: EXPORT_URL,
contentType: "application/json",
data: JSON.stringify([{authorId:"1",timestamp:123,content:"Test123"}]),
dataType: "application/pdf",
success: function (json, status) {
if (status != "success") {
console.log("Error loading data");
return;
}
console.log("Data loaded!");
},
error: function (result, status, err) {
console.log("Error loading data", err);
return;
}
});
错误Err对象抛出的回调说这个: No conversion from text to application/pdf
那么,我没有具体的下载网址只是PDF文件。问题是我需要发送JSON数据才能确保生成pdf。然后下载它。 – Christian
你仍然可以使用它。创建一个(动态)表单,其中包含(隐藏的)iframe的目标。您可以使用此表单进行POST,并且仍可以下载响应。 –