Попытка загрузить "Hello world", используя JS и PHP - PullRequest
1 голос
/ 26 января 2011

Я пытаюсь скачать PDF, когда нажимаю на ссылку.

Вот мои коды:

function issue_bill(order_id){
$.post('orders/issueBilll?id_order='+order_id,
        order_id,
        function()
        {
          $('example').replaceWith('Bill issued');
        }
      );
}


public function executeIssueBill(sfWebRequest $request)
{
  $pdf=new FPDF();
  $pdf->AddPage();
  $pdf->SetFont('Arial','B',16);
  $pdf->Cell(40,10,'Hello World!');
  $pdf->Output();
}  

Когда я нажимаю на ссылку, она не загружаетPDF документЕсли я пойду инспектором Firebug, я получу это ниже в разделе «Ответ» на консоли:

%PDF-1.3
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 72>>
stream
x�3R��2�35W(�r
Q�w3T04�30PISp
    �Z*�[����(hx����+���(j*�d��
endstream
endobj
1 0 obj
<</Type /Pages
/Kids [3 0 R ]
/Count 1
/MediaBox [0 0 595.28 841.89]
>>
endobj
5 0 obj
<</Type /Font
/BaseFont /Helvetica-Bold
/Subtype /Type1
/Encoding /WinAnsiEncoding
>>
endobj
2 0 obj
<<
/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font <<
/F1 5 0 R
>>
/XObject <<
>>
>>
endobj
6 0 obj
<<
/Producer (FPDF 1.53)
/CreationDate (D:20110126103602)
>>
endobj
7 0 obj
<<
/Type /Catalog
/Pages 1 0 R
/OpenAction [3 0 R /FitH null]
/PageLayout /OneColumn
>>
endobj
xref
0 8
0000000000 65535 f 
0000000228 00000 n 
0000000416 00000 n 
0000000009 00000 n 
0000000087 00000 n 
0000000315 00000 n 
0000000520 00000 n 
0000000596 00000 n 
trailer
<<
/Size 8
/Root 7 0 R
/Info 6 0 R
>>
startxref
699
%%EOF

Что я должен сделать, чтобы загрузить документ?У меня нет проблем с загрузкой PDF, если я вызываю метод issueBill().

1 Ответ

2 голосов
/ 26 января 2011

Вы не хотите делать AJAX-запрос, где ответ хранится в переменной JavaScript, вы хотите сделать обычный HTTP-запрос - такой, который делается, когда кто-то нажимает на ссылку или вводит URL в адрес браузерабар.

Отправьте пользователя на URL вашего генератора PDF с помощью window.location в JavaScript.

Если вы хотите попытаться заставить браузер оставаться на вашей странице, пока он это делает, сделайтезапрос, создав iframe, указывающий на URL вашего генератора PDF.Вам также нужно будет придумать заголовок типа контента, чтобы НЕ сообщать браузеру, что это PDF, иначе он может попытаться отобразить его в окне вместо принудительной загрузки.

...