我们的调查向我们表明,并非所有浏览器都以统一的方式尊重http缓存指令.
出于安全原因,我们不希望在我们的应用程序某些网页缓存,有史以来,通过Web浏览器.这必须至少适用于以下浏览器:
我们的要求来自安全测试.从我们的网站注销后,您可以按后退按钮查看缓存页面.
如何在Internet Explorer中阻止jQuery Ajax请求缓存?
如何使用JavaScript清除浏览器缓存?
我们部署了最新的JavaScript代码,但我们无法获取最新的JavaScript代码.
编者注:这个问题在以下几个地方是半复制的,下面第一个问题的答案可能是最好的.这个已接受的答案不再是理想的解决方案.
所以我有一个用于在网站上加载内容的ajax系统,它的工作原理如下:
单击按钮时,将调用Javascript函数:
onclick="doSomething('abc')"
Run Code Online (Sandbox Code Playgroud)
我的Javascript看起来像这样:
//Ajax
var xmlhttp;
function loadXMLDoc(url,cfunc) {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function doSomething(var) {
loadXMLDoc("http://www.website.com/ajax/doSomething.php?var="+var, function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("response-container").innerHTML=xmlhttp.responseText;
}
});
}
Run Code Online (Sandbox Code Playgroud)
PHP文件只调用echo的文本,如下所示:
echo "Response here";
Run Code Online (Sandbox Code Playgroud)
通常,每次运行此Javascript函数时,我都会使用此类型的系统在具有特定id的元素中加载新内容.
这已经完美地工作了3年多,但由于某种原因,Microsoft Edge正在缓解这一点的反应.因此内容根本没有正确生成.所以你运行一次,并且在x时间内它将继续返回相同的缓存响应.
有什么想法正确解决这个问题是什么?我已经看到提到使用标题,但我不确定如何在这种情况下应用修复.