我正在尝试创建一个文件(来自TCPDF的pdf)并使用对php文件的Ajax请求将其加载到我页面上的embed对象中:
$.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文件。
答案 0 :(得分:1)
尝试使用简单的cachebusting技术,例如
$('#pdf_placeholder embed')
.attr('src', 'output/my_file.pdf?v=' + Math.random());
这将始终使pdf
的缓存无效答案 1 :(得分: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);
}
}
});