Tôi có một liên kết và khi người dùng nhấp vào nó, sau đó anh ấy nhận được một tệp PDF. Trong jQuery, tôi tạo một cuộc gọi POST ajax đến máy chủ để lấy PDF. Phản hồi là tệp PDF, với tiêu đề nội dung chính xác v.v. thường khiến trình duyệt mở plugin Reader hoặc cho phép người dùng lưu tệp PDF. Nhưng trong trường hợp của tôi, điều này không hoạt động. Có cách nào để đặt loại nội dung dữ liệu hoặc đặt loại nội dung thành PDF không?jQuery Ajax: phản hồi pdf
gọi ajax của tôi:
$('#sf_getpdf').click(function() {
$.ajax({ //create an ajax request to load_page.php
type: "POST",
url: "index.php?route=sale/order/superfaktura_getpdf&token=<?php echo $token; ?>",
data: 'invoice_id=<?php echo $invoice_id; ?>&sf_token=<?php echo $sf_token ?>', //with the page number as a parameter
dataType: "text", //expect html to be returned
success: function(msg){
if(parseInt(msg)!=0) //if no errors
{
document.write(msg)
}
}
});
});
Firebug, phản ứng:
đáp ứng trong trình duyệt ...
Tôi đã cố gắng để thiết lập content-type trong máy chủ , không thành công:
Chỉnh sửa: Ajax là không cần thiết, để thực hiện việc này.
<a id="adr_stitok" target="_blank" href="index.php?route=sale/order/superfaktura_getpdf&token=<?php echo $token; ?>&invoice_id=<?php echo $invoice_id; ?>&sf_token=<?php echo $sf_token ?>" >Download</a></td>
Sẽ làm việc này.
document.write() không có nghĩa là sẽ được sử dụng như thế. Bạn nên tắt việc gửi người dùng đến một trang mới. – Corbin
Ahhh, tôi ngu ngốc. Download Tôi không cần ajax để thực hiện việc này. :) – Adrian
Tại sao bạn không chỉ đơn giản là siêu liên kết liên kết pdf? hoặc gửi yêu cầu qua biểu mẫu? – John