使用jQuery AJAX函数调用返回PDF的php文件

我的php文件:example_061.php创建PDF返回,一切正常。</ p>

< p>现在我想用jQuery AJAX调用该文件在我的屏幕上显示并尝试:</ p>

  $(“#proba”)。click(function(){

//在这里我们可以在验证字段不为空后执行ajax。
$ .ajax({
url:“tcpdf / examples / example_061.php”,
type:“POST”,\ n async:true,
data:{
ime:$(“#ime”)。val(),
pozicija:$(“#pozicija”)。val(),
jmbg:$(“# jmbg“)。val()
},//你要发布的表单数据作为json对象发送到这里
dataType:”html“,
success:function(response){
window.open('example_061。 pdf');
},
});
});
</ code> </ pre>

一切都很好,所以成功功能正常工作,我收到提醒信息,但我不知道 不要将PDF文件作为下载或屏幕显示。 我怎么能这样做?</ p>
</ div>

展开原文

原文

My php file: example_061.php create PDF return and everything works fine.

Now I want to call that file with jQuery AJAX to get this at my screen and I try:

$("#proba").click(function() {
  //in here we can do the ajax after validating the field isn't empty.
  $.ajax({
    url: "tcpdf/examples/example_061.php",
    type: "POST",
    async: true, 
    data: { 
      ime: $("#ime").val(),
      pozicija: $("#pozicija").val(),
      jmbg: $("#jmbg").val()
    }, //your form data to post goes here as a json object
    dataType: "html",
    success: function(response) {
      window.open('example_061.pdf');
    },  
  });        
});

Everything is fine so success function work an I get alert message but I don't get PDF file as download or at screen. How I can do that?

doumu5662
doumu5662 我更新了我的问题......所以我将数据发送到php文件以获取pdf输出,我现在可以下载如何用ajax发送的生成数据PDF?
5 年多之前 回复
ds261634878
ds261634878 我使用TCPDF库
5 年多之前 回复
doudiandi6967
doudiandi6967 您使用的是哪个PDF库?你有什么选择->输出()?
5 年多之前 回复
dtzk85937
dtzk85937 有很多像Ajax一样的下载程序......这是我自己的例子:github.com/gasparesganga/jquery-ajax-downloader
5 年多之前 回复
duandangqin0559
duandangqin0559 在PHP文件的末尾我有://关闭并输出PDF文档返回$pdf->Output('example_061.pdf','I');
5 年多之前 回复

1个回答

You do not need to use AJAX to download a file. If the content-disposition header is set, it will be downloaded and the current page will not be reloaded.

Just add this to your php script that creates the PDF:

header('Content-Disposition: attachment; filename=' . $MyFileName); 

And instead of AJAX, use a regular anchor tag link:

<a href="tcpdf/examples/example_061.php">Download</a>

As someone noted in the comments, if you need to post you can still use a simple form with the same effect:

<form method="POST" ACTION="tcpdf/examples/example_061.php">
<input type="hidden" name="myPostItem" value="My POSt VALUE" />
<input type="submit" value="download">
</form>
dou12754
dou12754 实际上,如果您只是在点击后下载生成的PDF,只需使用带有PHP文件的常规表单作为操作,如上面的@Adelphia所述。 $ pdf->输出('filename.pdf','I')应该在浏览器中内联显示下载的PDF或显示“另存为...”对话框。
5 年多之前 回复
duaevb1511
duaevb1511 对不起,你很难理解,但我真的只回答了这个问题。
5 年多之前 回复
duanci9305
duanci9305 但我需要将一些文本数据发送到server-php文件,然后我需要获取PDF输出。 为什么我不能?
5 年多之前 回复
drh96824
drh96824 你不能! 下载某些内容涉及将文件复制到文件系统。 JS无权访问文件系统,只有浏览器本身可以访问。 如果您需要发布,则需要使用上面发布的答案的一些变体。
5 年多之前 回复
duanfu4446
duanfu4446 我更新了我的问题,所以我将数据发送到php文件以获取pdf输出,我现在可以下载如何用ajax发送的生成数据PDF?
5 年多之前 回复
dongqin1819
dongqin1819 你仍然可以对example_061.php进行常规POST,即使它最终会输出PDF。 不需要使用AJAX ......
5 年多之前 回复
dongtun1872
dongtun1872 为什么不能使用GET而不是POST?
5 年多之前 回复
dpca31461
dpca31461 抱歉,但我需要将一些数据发送到php文件来创建我需要的pdf ...所以我需要使用ajax ...
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问