【问题标题】:How to download pdf in javascript using soap webservices?如何使用soap webservices在javascript中下载pdf?
【发布时间】:2015-12-15 12:16:42
【问题描述】:

我的表中有一个账单列表,每一行都有自己独特的账单(不同的日期、金额等......)。我已经成功地在 Laravel 5 中通过Soap:Wrapper 进行了 php 调用,当我在浏览器中输入“该过程的路径”时,我得到了我的 pdf。但我想使用 Javascript 打开它。

我的服务器端代码

$pdfData= $soap->racun($data);

header("Content-type: application/pdf");
header("Content-Length:" . strlen($pdfData));

//this line if i want to preview my pdf in browser 
header("Content-Disposition: inline; filename=pdf.pdf");

//this line if i want to download my pdf
header('Content-Disposition: attachment; filename="pdf.pdf"');
print $pdfData;

我的客户端代码是

$.ajax({
     type:"GET",
     url:"/path",
     data:"param1=" + par1+"&param2="+ par2+ "&param3="+par3,
     success:function(msg){
               //alert(msg);
               //here needs to show that pdf but don't know how 
               document.write(msg);
     },
     fail:function(){
                alert('Error with pdf');                    
     }
  });

因此,当用户单击链接以获取他的账单时,我发送 AJAX 调用并使用 SOAP WebService 获取该 pdf。问题是如果我在浏览器中写/path,我可以预览或下载它,但不知道如何在 Javascript 中执行。我做错了什么?

【问题讨论】:

    标签: javascript php web-services pdf soap


    【解决方案1】:

    好吧,你正在发送一个 GET 请求,所以你可以简单地这样做:

    window.location = "/path?" + "param1=" + par1+ "&param2=" + par2 + "&param3=" + par3;
    

    您可能还想查看this answer

    【讨论】:

    • 谢谢,有时最简单的解决方案是最好的。我已经把我的 pdf 下载放好,所以通过这一行它会自动下载。原因是我不想显示用户 /path?params 因为可能会得到一些其他不属于他们的账单。感谢您的回答 +1。
    • @KuKeC 因为您即时生成账单(即不要将其作为文件存储在您的服务器上),所以无需担心用户下载错误的文件 - 您检查用户权限php脚本,不是吗? ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多