我有一些信息,我可以编辑然后更新,然后我通过ajax获得更新的内容工作正常,但图像被缓存并且不会更改(图像具有相同的名称,如果是新图像上传它直接覆盖前一个。)
如果我那么刷新页面,我会看到新图像,如果我从那时起编辑和更新图像,它运行良好,但第一次始终是问题。更新内容后,我总是要手动页面刷新。
我的阿贾克斯:
$.ajax({
type: "POST",
async: true,
url: vkrwps_admin.ajax_url,
data: {
action: 'EDIT_PROD',
sv: sv,
preload: vkrwps_admin.preloader
},
cache: false,
beforeSend: function() {
$('div.mule').html(u);
},
success: function(response) {
$('div.mule').html(response);
// call chosen on select
$('select').chosen({
// placeholder_text: "Choose a product..."
'disable_search': true
});
// $('select.dropsearch').val(4).trigger('change');
},
complete: function() {
// $('select.dropsearch').one().val(cf).trigger('change');
}
});
我还尝试将以下内容放在脚本之上,但没有帮助:
$.ajaxSetup({ cache: false });
答案 0 :(得分:2)
试试这样:
$.ajaxSetup({
type: 'POST',
headers: { "cache-control": "no-cache" }
});
您可以在the question找到更多解决方案。
答案 1 :(得分:1)
这不是ajax的响应所有需要缓存清除,它是图像,并且它在服务器上更新,但您仍然加载相同的URL,因此它不会在客户端更新。
尝试在图像中添加随机查询字符串以再次加载图像,在ajax成功函数中执行
success: function(response){
var r = (new Date()).getTime();
$('div.mule').html(response).find('img').prop('src', function(_, src) {
return src + '?v=' + r;
});
$('select').chosen({
// placeholder_text: "Choose a product..."
'disable_search': true
});
// $('select.dropsearch').val(4).trigger('change');
},