我在IE 11中遇到了AJAX的问题。我的页面使用此代码通过AJAX从服务器请求sone值:
var xmlhttp;
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 = function ()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
doSomeThing();
}
}
xmlhttp.open("GET", "theURL", true);
xmlhttp.send();
在Chrome和Firefox中,它工作正常,但IE似乎缓存了AJAX响应,即使服务器上的页面发生了变化,我也会得到相同的结果。
有没有办法禁用缓存?
答案 0 :(得分:4)
向网址添加随机参数,例如时间戳:
var url="//yoururl.com/";
url+="?"+new Date().getTime();
答案 1 :(得分:0)
这让我发疯了。我尝试了许多缓存清除技术和设置缓存标头。这些中的许多要么不起作用,要么是疯狂的追逐。我发现测试工作正常的唯一解决方案是设置:
Header Pragma:no-cache
我希望通过IE头痛来拯救其他人。
BTW这是StackOverflow线程很好地阐明了Pragma和Cache-control之间的区别: Difference between Pragma and Cache-control headers?