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

上一篇: jquery ajax cache:false not working

下一篇: iPad caching AJAX responses despite setting 'No Store'