下载由java web服务(POST)流式传输的pdf

时间:2012-09-24 13:16:29

标签: java jquery web-services post

我有一个由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,
    });

webservice接口工作,但在客户端,导航器不会打开文件(pdf)。

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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你应该使用GET方法。

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

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

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

ng-ckeditor