Javascript 从ajax请求查看pdf报告

Javascript 从ajax请求查看pdf报告,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我在使用TCPDF库生成pdf时遇到了一个问题,我尝试了下面的一些示例,但我没有解决我的问题,这就是:当我单击一个按钮时,我发出了一个AJAX请求,该请求发送一个参数,url指向带有CODEIGNITER的php控制器,该参数用于执行我的查询并基于它生成报告。我已经用静态参数调试了这个报告,看看它是否工作,并且没有使用AJAX,一切都进行得很顺利。问题是我需要以这种方式发送数据,我不知道如何加载响应我请求创建的pdf文件,有什么想法吗 $(“#BtnDownload”)。单击(函数(){ va

我在使用TCPDF库生成pdf时遇到了一个问题,我尝试了下面的一些示例,但我没有解决我的问题,这就是:当我单击一个按钮时,我发出了一个AJAX请求,该请求发送一个参数,url指向带有CODEIGNITER的php控制器,该参数用于执行我的查询并基于它生成报告。我已经用静态参数调试了这个报告,看看它是否工作,并且没有使用AJAX,一切都进行得很顺利。问题是我需要以这种方式发送数据,我不知道如何加载响应我请求创建的pdf文件,有什么想法吗

$(“#BtnDownload”)。单击(函数(){
var jsonString=2;//示例参数;
$.ajax({
键入:“POST”,
url:baseurl+“报告/选择报告”,
数据:{'data':jsonString},
成功:功能(响应){
//我的司机应该归还什么
}
});
});在TCPDF中(根据)可以保存PDF:

$dir = 'pdfs/';
$filename = 'report' . microtime(TRUE) . '.pdf';

if( ! is_dir( FCPATH . $dir ) )
    mkdir( FCPATH . $dir, 0777, TRUE );

$pdf->Output( FCPATH . $dir . $filename, 'F'); // F saves to filesystem
因为您知道pdf位于pdf目录中:

$this->load->helper('url');
echo json_encode(array(
    'path' => FCPATH . $dir . $filename,
    'url'  => base_url( $dir . $filename )
));
然后,在ajax成功函数data.url中,是指向该文件的url:

success: function(response){
    if( response.url ){
        window.location = response.url;
    }
}
确保$.ajax具有数据类型“json”的配置

$.ajax({
    // ...
    dataType: 'json'
    // ...
});

不要发回PDF。将URL发送回PDF。然后重定向到URL,或者任何能让你的船漂浮的东西。你能给我一个评论的例子吗。我希望你觉得它有用。我不了解FCPATH的操作,当与我的base_URLEP结合时,你是对的。对不起,那不属于你。我确定了我的答案。FCPATH仅适用于保存它的文件位置。URL不应该在那里。现在什么都没有发生。。。我在ajax的成功中创建了一个console.log,但也没有做任何事情,仅供参考,如果pdfs目录不存在,将出现错误。创建PDF目录并重试。如果文件夹存在。。检查所有这些,因为我删除了FCPATH,当我仍然重定向到错误的url时,什么也没有发生。。但现在它什么也没做