gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:47:58 24 4
gpt4 key购买 nike

我已经设置了一个应用程序,它在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com