Javascript 如何使用Ajax调用在弹出窗口中打开pdf?

Javascript 如何使用Ajax调用在弹出窗口中打开pdf?,javascript,ajax,pdf,Javascript,Ajax,Pdf,因此,我需要能够打开由服务器端脚本根据我发送的html生成的pdf。html是一个巨大的字符串。我曾想过在widow.open中使用ajax,但我似乎不知道该如何使用 $.ajax({ type: "POST", url: "/pdf", data: {input:html}, success: function(msg) { window.open(msg) }, error

因此,我需要能够打开由服务器端脚本根据我发送的html生成的pdf。html是一个巨大的字符串。我曾想过在widow.open中使用ajax,但我似乎不知道该如何使用

$.ajax({
        type: "POST",
        url: "/pdf",
        data: {input:html},
        success: function(msg) {
            window.open(msg)
        },
        error: function(msg) {

        }
    });

我原以为这样行得通,但事实并非如此

您可以使用jQuery PDF查看器插件。例如,使用,您将编写如下内容:

$.ajax({
   type : "POST",
   url : "/pdf",
   data : {
      input : html
   },
   success : function (msg) {
      var pdf = new jsPDF();
      pdf.text(20, 20, msg);
      pdf.output('datauri');
   },
   error : function (msg) {}
});

这有帮助吗?我相信这就是我要找的。我真的无法理解。您需要JavaScript或后端处理方面的帮助吗?我问这个问题的原因是因为我认为JavaScript本身无法生成PDF,但if可以从脚本中获取PDF并呈现正确的内容标题。我认为这不可能通过简单的跨浏览器方式实现。为什么不打开一个包含PDF的iframe?如果我正确理解了这个问题,它可能会重复,它会询问如何使用AJAX查看从服务器检索到的PDF;不根据使用AJAX接收的内容生成PDF。@icktoofay-Hmm。也许你是对的,但看看代码示例,我不同意你的观点。在我看来,服务器返回的是消息msg,而不是URL。很抱歉造成混淆,@icktoofay是正确的。我需要能够查看pdf。@B7ackAnge7z消息实际上是返回的pdf。我知道在这种情况下,iframe可以解决您的问题。另外,您可以使用jsPDF,但服务器需要返回消息,而不是PDF内容。