如何在ie和firefox中清除ajax缓存?

时间:2013-01-03 13:22:31

标签: jquery caching browser-cache

我写了一个ajax调用来更改图像并在ajax调用成功时将其显示在浏览器上。但是IE和Firefox上的图像没有变化。它在Chrome上运行良好。

var url =  "/store/artwork/index/renderSVGFile?"+"docID=<?php echo $docID ?>&unique="+(new Date()).getTime();
    jQuery('*').css('cursor', 'wait');
        jQuery.ajax({
            url: url,
            cache:false,
            type: "POST",
            data: {},
            success: function(data) {
                jQuery('#product-img-template').html("<img src='/path/to/image/<?php echo $docID ?+>.png' />");
                jQuery('#product-img-template').css("position", "relative");
                jQuery('#product-img-template').css("top","-430px");
                jQuery('#product-img-template').css("left","-7px");
                jQuery('#product-img-template').css("height","400px");
                jQuery('#product-img-template').css("margin-bottom","-350px");
                jQuery('#product-img-template').css("z-index","20");
                jQuery('*').css('cursor', 'auto'); 
            },
            failure: function(data) {
                 jQuery('*').css('cursor', 'auto'); 
            }
        });

我可以看到图片已经更改,但未在浏览器中显示。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

缓存false与您显示的图像无关。所以对于行

jQuery('#product-img-template').html("<img src='/path/to/image/<?php echo $docID ?+>.png' />");

例如将其更改为此 - 就像您在ajax网址中所做的那样

jQuery('#product-img-template').html("<img src='/path/to/image/<?php echo $docID ?+>.png?" + (new Date()).getTime() + "' />");