Internet Explorer 11中的AJAX - 不要缓存

时间:2015-06-17 09:36:46

标签: javascript ajax internet-explorer

我在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响应,即使服务器上的页面发生了变化,我也会得到相同的结果。

有没有办法禁用缓存?

2 个答案:

答案 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?