小编Mar*_*dra的帖子

在新窗口中显示pdf流

我正在服务器中生成一个PDF文档,我想在客户端显示.服务器端如下所示:

ByteArrayOutputStream baos = generatePDF();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=file.pdf");
response.setContentLength(baos.size());
baos.writeTo(response.getOutputStream());
Run Code Online (Sandbox Code Playgroud)

在客户端中,我有以下代码来检索PDF:

$.ajax({
    type: "POST",
    url: url,
    data: {"data": JSON.stringify(myData)},
    success: function(data, textStatus, jqXHR) {
        window.open("data:application/pdf," + escape(data));
    },
    error: function(jqXHR) {
        showError("...");
    }
});
Run Code Online (Sandbox Code Playgroud)

它看起来很好,新窗口打开,但PDF没有显示.它总是显示为空文档.

然而,如果客户端看起来像以下,它工作正常:

var form = $("<form target='_blank'>").attr({
    action : myURL,
    method : "POST"
});
var input1 = $("<input type='hidden'>").attr({
    "name": "data",
    value: JSON.stringify(myData)
});

form.append(input1);
$("body").append(form);
form.submit();
form.remove();
Run Code Online (Sandbox Code Playgroud)

但我不能使用第二种方式因为我需要管理错误,我不能使用form.submit().

关于PDF发生了什么的任何想法?

javascript pdf jquery spring stream

13
推荐指数
2
解决办法
5万
查看次数

如何将巨大的参数列表发送到 GET 请求

我的服务器中有一个 REST API,其中List操作(应该使用 GET 方法实现)从客户端接收多个参数:

  • 当前页面
  • 行数
  • 用于执行快速搜索的文本
  • 为搜索定义复杂过滤器的对象(“字段操作值”形式的规则集)

由于这个用于过滤搜索的复杂对象,我需要将列表定义为 POST,我认为这不是一个好主意,因为 REST 将列表操作定义为 GET。

我的问题很简单:有没有办法使用 GET 方法解决这个问题,避免使用带有参数的巨大 URL 调用它?

javascript java api rest spring

5
推荐指数
2
解决办法
5884
查看次数

标签 统计

javascript ×2

spring ×2

api ×1

java ×1

jquery ×1

pdf ×1

rest ×1

stream ×1