创建类时出现FPDF错误


FPDF error while creating class

在创建将JSON数据输出到PDF所需的类时遇到了一个问题。PHP文件如下:

<?php    
header('Content-type: text/json');    
ob_start();    
require('fpdf.php');    
class PDF extends FPDF{    
  // Colored table    
  function FancyTable($PDFtabHead, $PDFtabData)    
  {    
    // stuff with table works if tested with another PHP page    
  }    
} // END -class    

$PDFtabHead = json_decode(($_POST['PDFtabHead']), true);    
$PDFtabData = json_decode(($_POST['PDFtabData']), true);    
$pdf = new PDF();    
$pdf->SetFont('Arial','',12);            
$pdf->AddPage();    
$pdf->FancyTable($PDFtabHead,$PDFtabData);    
$pdf->Output();    
echo json_encode(array("res"=>$PDFtabHead)); // Only to chek if outputs something    
ob_end_flush();    
?>    
从我的JS文件调用函数是:
$.ajax({
    type: "POST",
    async: false,
    url: './FPDF/PDF.php',
    dataType: 'json',
    data: {PDFtabHead: tabHead, PDFtabData: tabData},
    success: function (response) {
      var res = response.res;
     console.log("ok return: "+res);
    } // success
    ,
    error: function() {
      console.log("ERROR CONNECTING TO ./FPDF/PDF.php");
    }// error
  }); // ajax

tabHeadtabData是正确的,这是tabData的输出:

["05:22"、"0043"、"22:31","200201","05:22"、"0044"、"22:31 ", ......]

调用PDF.php总是以错误结束,输出到控制台:error CONNECTING to ./FPDF/PDF.php

如果我测试它从另一个测试页面,不发送JSON格式的数据,但一个正常的PHP数组它的工作原理。显然,我必须改为

$PDFtabHead = ($_POST['PDFtabHead']);
$PDFtabData = ($_POST['PDFtabData']);

在这种情况下,PDF页面被正确呈现。

同样,如果我删除类声明,并简单地返回到我的JS页面JSON数组,它的工作;不打印PDF,很明显,但是数组返回如预期的

好的,我在FPDF论坛上找到了解决方案http://www.fpdf.org/?go=forum&i=56364&t=56363, Oliver的答案是

不要从AJAX调用返回PDF。