我有以下錨點標籤,當按下時,成功調用控制器(主)內的函數(my_pdf)。jQuery,Codeigniter和DOMPDF:錨點工作,但不是AJAX
<a href="main/my_pdf">Press Me</a>
下面是主控制器的功能:
function my_pdf()
{
$this->load->helper('dompdf');
$this->load->helper('file');
$html = "<p>Testing</p>";
pdf_create($html, 'somefilename');
echo "Your PDF has been created.";
}
的DOMPDF library工程和創建文件「somefilename.pdf」當它被錨標籤瀏覽控制器時調用或預期/功能如下:
http://localhost/main/my_pdf
但是,我需要從jQuery AJAX請求調用此函數。下面是HTML:
<div id="pdf"><img src="assets/images/pdf-icon.gif" /></div>
<div id="notice"></div>
及配套的jQuery:
$('#pdf').click(function(){
$.ajax({
url: 'main/my_pdf',
type: 'POST',
success: function(msg) {
$('#notice').html(msg);
}
});
return false;//toggled this between true/false and still not working
});
如果我註釋掉my_pdf功能pdf_create電話,我證實了AJAX調用返回的回聲字符串的預期。問題是,當我使用AJAX調用main/my_pdf時,pdf不會被創建。實際上,似乎pdf_create返回一長串的代碼,可能被用來渲染pdf。所述AJAX成功消息返回以下字符串:
%PDF-1.3 1 0 OBJ < < /類型/目錄/大綱2 0 R /頁3 0 R/OpenAction 8 0 R >> endobj 2 0 OBJ < < /類型/輪廓/計數0 >> endobj 3 0 obj < < /類型/ Pages/Kids [6 0 R]/Count 1/Resources < </ProcSet 4 0 R/Font < </F1 9 0 R >> >>/MediaBox [0.000 0.000 612.000 792.000] >> endobj 4 0 obj [/ PDF/Text] endobj 5 0 obj < </Creator(DOMPDF)/ CreationDate(D:20110225190447-05'00')/ ModDate(D: 20110225190447-05'00')>> endobj 6 0 obj < < /類型/頁/父3 0 R /目錄7 0 R >> endobj 7 0 OBJ < < /長度73 >>流0.000 0.000 0.000 RG BT 34.016 723.208 TD/F1 12.0 TF [(測試)
我願意接受任何建議。
那'%PDF-1.3 ...'東西是原始的PDF數據。當您使用''元素訪問'main/my_pdf'時,瀏覽器執行GET請求;但是,您的AJAX調用正在執行POST請求; 'pdf_create'與POST請求有什麼不同? – 2011-02-26 05:01:58