禁用AJAX缓存

Nik*_*Nik 10 ajax

我现在有点腌渍.我正在构建一个从CGI后端获取数据的网页.我无法控制CGI后端,也无法控制服务器(因此没有mod_headers或mod_expires).此外,由于脚本的参数,我不能为每个请求附加唯一值(如'&089u0af0d98).请求是使用XmlHttpRequest对象的AJAX.我试图设置'If-Modified-Since'和'Cache-Control'请求标头失败.有没有人对我如何阻止AJAX响应被浏览器缓存有任何其他想法?

Mar*_*arc 13

您可以使用POST发送随机参数,同时根据需要使用GET发送重要变量.

如果你有IE的问题,我知道用POST发送东西使它停止缓存服务器响应


Vik*_*kas 11

我使用这个javascript函数(后者又使用jquery.ajax函数)缓存:false就可以了.这对我来说非常合适,也许你可以尝试一下

    function ajax_call(urlString)
    {
        ret_val="";
        $.ajax
        (
            {
                type: "GET",
                url: urlString,
                async:false,
                cache:false,
                dataType: 'html',
                success: function(msg)
                {
                    ret_val=msg;
                },
                error:function (xhr, textStatus, thrownError)
                {
                    ret_val=xhr.readyState;
                    alert("status=" +xhr.status);
                }
            }
        );
        return ret_val;
    } 
Run Code Online (Sandbox Code Playgroud)


小智 7

我用'$ .ajaxSetup({cache:false});' 我的基本html-page(default.aspx)中的某个地方非常常的网络系统,它工作正常.没有痛苦的缓存问题了.