2013-06-13 108 views
0

我想創建一個文件(從TCPDF PDF),並使用Ajax請求的PHP文件中的嵌入對象時,它加載我的網頁上:jQuery的負載

$.ajax({ 
    url: 'my_file_which_create_pdf_file.php', 
    type: 'POST', 
    success: function(){ 
     $('#pdf_placeholder embed').attr('src','output/my_file.pdf'); 
     }, 
    error: function (xhr, status, error) { 
     if (xhr.status > 0) { 
      alert('got error: ' + status); 
      } 
     } 
    }); 

這是我html代碼:

<div id="pdf_placeholder"> 
    <embed id="pdf_document" src="" width="900"> 
</div> 

這是工作,但...有時候嵌入對象加載PDF文件的兌現版本,而不是用新生成的(通常糾正PHP文件錯誤後)。

我刪除文件,調用腳本,pdf文件生成正常,(通過ftp客戶端檢查它),但嵌入對象加載舊版本的pdf文件。

在Ajax請求中添加async: false,沒有任何變化,仍舊兌現PDF文件顯示。

回答

1

嘗試用一個簡單的緩存無效化技術,像

$('#pdf_placeholder embed') 
    .attr('src', 'output/my_file.pdf?v=' + Math.random()); 

這將始終緩存失效的PDF

+0

謝謝,這是有效的!我正在使用這種加載pdf的方式,因爲我仍然無法使TCPDF直接執行此操作,但這是另一回事。 – pl71

0

你試過關掉ajax緩存默認情況下爲真

$.ajax({ 
url: 'my_file_which_create_pdf_file.php', 
type: 'POST', 
cache: false, 
success: function(){ 
    $('#pdf_placeholder embed').attr('src','output/my_file.pdf'); 
    }, 
error: function (xhr, status, error) { 
    if (xhr.status > 0) { 
     alert('got error: ' + status); 
     } 
    } 
}); 

jQuery.ajax

+0

這就是我要建議的,但問題不是ajax調用,而是成功函數內的'src'設置沒有觸發新的請求。 –