下载由java webservice(POST)流式传输的pdf

我有一个由POST方法调用的web服务:

@Path("/ficheAction/") @POST @Consumes({ MediaType.APPLICATION_JSON }) @Produces("application/pdf") public Response ficheAction(final ParamSyntheseFicheActionDto paramSyntheseFicheAction) throws EngineException { [...] return Response.ok(output.toByteArray(), "application/pdf") .header("content-disposition", "attachment; filename = " + name + ".pdf").build(); } 

这个web服务使用我的js中的参数(Json):

  [...] $.ajax({ url : webServiceUrl, // type : "POST", // Content type to send to the server contentType : "application/json; charset=utf-8", data : pData, dataType : "json", success : pCallback, cache : false, }); 

Web服务接缝可以工作,但在客户端,导航器不会打开文件(pdf)。

我用GET测试而不是POST(简化属性),它可以工作,但不能在POST中…当我在chrome调试中查看webservice的响应时,我可以看到有一个响应开始“%PDF-1.5”……但是下载没有开始……

我究竟做错了什么?

你应该使用GET方法。

要下载该文件,请不要使用ajax只需通过简单的链接调用您的webservice。

 Download 

或者使用那个简单的js脚本:

 window.open("http://your-server.com/ficheAction");