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文件。

添加async: false,Ajax 请求没有任何改变,仍然显示已兑现的 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 回答