javascript - 阻止浏览器缓存 AJAX 请求

标签 javascript ajax google-chrome

我已经设置了一个应用程序,它在 Opera 和 Firefox 上运行得非常好,但在 Google Chrome 上它会缓存 AJAX 请求并提供过时的数据!

http://gapps.qk.com.au是应用程序。在 Chrome 中运行时,它甚至不发送 AJAX 请求,但在其他浏览器中尝试时,它总是执行 AJAX 请求并返回数据。

是否有任何方法(Apache/PHP/HTML/JS)来阻止 Chrome 执行此行为?

AJAX 调用:

function sendAjax(action,domain,idelement) {

                    //Create the variables
                var xmlhttp,
                    tmp,
                    params = "action=" + action
                             + "&domain=" + encodeURIComponent(domain)

                    xmlhttp = new XMLHttpRequest(); 
                //Check to see if AJAX request has been sent
                xmlhttp.onreadystatechange = function () {
                    if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
                        $('#'+idelement).html(xmlhttp.responseText);
                    }
                };
                xmlhttp.open("GET", "ajax.php?"+params, true);
                xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                //console.log(params);
                xmlhttp.send(params);

            }
sendAjax('gapps','example.com','gapps');

最佳答案

浏览器缓存在不同的设置下表现不同。您不应依赖用户设置或用户的浏览器。也可以让浏览器忽略 header 。

有两种方法可以防止缓存。

--> 将 AJAX 请求更改为 POST。浏览器不缓存 POST 请求。

--> 更好的方法和好方法:使用当前时间戳或任何其他唯一编号向您的请求添加附加参数。

params = "action=" + action 
         + "&domain=" + encodeURIComponent(domain) 
         + "&preventCache="+new Date();

关于javascript - 阻止浏览器缓存 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11463637/

相关文章:

php - preg_match_all 等效于 JS?

javascript - ES6 Promises.all() 不全部执行(promises 中没有捕获到错误)

javascript - jQuery ajax 的 URL 无效

javascript - Jquery onclick 这个删除两个跨度

javascript - 未捕获的范围错误: Item index is out of range error in WebSQL Query Results

javascript - 未在 Google Chrome 中清除缓存

javascript - 如何消除 chrome 上的抖动

javascript - 使用 Chrome 进行 WebStorm 调试 - 具有有用控制台和在 WebStorm 中设置断点的最佳工作流程

ruby-on-rails - 有没有一种方法可以使用simple_form for Rails提交ajax/json请求

javascript - AJAX 未将日期发布到 PHP