IE9中的AJAX问题?

时间:2011-05-13 19:17:58

标签: javascript html ajax

我做了一个AJAX聊天室;它适用于chrome和FF,但当然不适用于IE。这是我的代码:

<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(){
    var ajaxRequest; 
    try {
      ajaxRequest = new XMLHttpRequest();
    } catch (e) {
      try {
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
           ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e){
           alert("Your browser broke!");
           return false;
     }
  }
    }

    ajaxRequest.onreadystatechange = function(){
      if(ajaxRequest.readyState == 4) {
        var ajaxDisplay = document.getElementById('ajaxDiv');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
      }
    }

    ajaxRequest.open("GET", "pull.php", true);
    ajaxRequest.send(null);  
}

setInterval( "ajaxFunction()", 1000 );

//-->
</script>

结果永远不会显示。如果有帮助的话,我有一个名为AjaxDiv的div。我究竟做错了什么?这是一个错误吗?

1 个答案:

答案 0 :(得分:6)

每次发出请求时,可能都会删除缓存的副本。

在服务器上设置正确的缓存标头

header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Pragma: no-cache' ); 

或者将查询字符串附加到get请求,如下所示

ajaxRequest.open("GET", "pull.php?ts=" + new Date().getTime(), true);