0

ファイル(TCPDFからのpdf)を作成し、phpファイルへのAjaxリクエストを使用してページの埋め込みオブジェクトにロードしようとしています:

$.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>

これは機能していますが...時々(通常はphpファイルのエラーを修正した後)、埋め込みオブジェクトは、新しく生成されたものではなく、キャッシュされたバージョンのpdfファイルでロードされます。

ファイルを削除し、スクリプトを呼び出します。pdf ファイルは正しく生成されますが (ftp クライアントで確認)、埋め込みオブジェクトは古いバージョンの pdf ファイルを読み込みます。

Ajax リクエストに追加async: false,しても何も変更されませんが、キャッシュされた pdf ファイルが表示されます。

4

2 に答える 2

1

次のような単純なキャッシュ無効化手法を使用してみてください

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

これにより、pdfのキャッシュが常に無効になります

于 2013-06-13T08:59:20.530 に答える
0

ajaxデフォルトでtrueになっているキャッシュをオフにしようとしましたか

$.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

于 2013-06-13T09:03:43.693 に答える