jquery ajax缓存:假不工作
我有一些我可以编辑然后更新的信息,然后通过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 });
这不是ajax所有需要缓存清除的响应,它是图像,并且已在服务器上更新,但您仍在加载相同的URL,因此它不会在客户端进行更新。
尝试添加一个随机查询字符串的图像再次加载图像,在阿贾克斯成功函数做
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');
},
像这样尝试:
$.ajaxSetup({
type: 'POST',
headers: { "cache-control": "no-cache" }
});
您可以在问题中找到更多解决方案。
链接地址: http://www.djcxy.com/p/55723.html