[英]jQuery AJAX - conditional success result based on data from PHP page
[英]Handling PDF result data from ajax success
我想知道是否有人可以提出一種替代方法來解決以下問題。
我有一個Web應用程序,可向PDF發出http請求。 對於要在服務器端創建的請求,PDF所花費的時間可能超過默認超時,因此,為了更好地控制它,我使用了ajax,而以前只使用window.open。
但是,由於PDF的准備方式,創建它的請求也會返回它。 我想不出一種方法來處理返回的二進制PDF數據,所以我只是簡單地放在瀏覽器緩存上存儲數據。 然后,只需使用window.open再次針對相同的URL請求即可。
為此的代碼如下。
function loadPdf(url, timeout){
$.ajax({
url: url,
success: function(data){
window.open(url);
},
error: function(error, status){
window.alert("Problem retrieving PDF.\nThe error status is: " + status);
},
timeout: timeout,
dataType: "application/pdf"
});
}
我真正想做的是以要求用戶打開/保存PDF的方式處理成功數據。 我真的不喜歡以這種方式使用window.open,尤其是像這樣的重復調用。
我真正想做的是以要求用戶打開/保存PDF的方式處理成功數據。
這不可能。 您不應該使用AJAX下載文件。 您不能對success
回調中檢索到的字節數組做任何有用的事情。 您不能直接將其保存在客戶端計算機上(出於明顯的原因),也不能使用“保存”對話框來提示用戶。
您不需要使用window.open
。 您只需提供指向該文件的鏈接:
<a href="/somescript">download pdf</a>
然后在服務器上指定: Content-Disposition: attachment; filename="test.pdf"
Content-Disposition: attachment; filename="test.pdf"
自定義HTTP標頭,以顯示保存對話框,允許用戶在計算機上指定存儲文件的位置。
jquery.fileDownload插件會滿足您的需求嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.