php - AJAX仅在IE中加载一次

标签 php javascript ajax

我不明白为什么下面的 AJAX 代码只会在 IE 中加载一次来 self 的 php 页面的信息,而在所有其他浏览器中都可以正常工作。

   <script type="text/javascript">
var c=0;

function randomize(str)
{

if (str=="")
  {
  document.getElementById("dispeople").innerHTML="";
  return;
  } 
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)
    {
    document.getElementById("dispeople").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","randomize.php?q=" + Math.random(),false);
xmlhttp.send();

document.getElementById('txt').value=c;
c=c+1;
}

setInterval( "randomize()", 2000 );
</script>

我对使用 AJAX 相当陌生,并且已经研究了这个问题并实现了我能找到的所有解决方案,任何帮助将不胜感激。

更新,2011 年 10 月 21 日

我已经检查了 JQuery 并实现了它,但如果有人有任何建议,我仍然遇到同样的问题,这是我当前使用的代码:

<script type="text/javascript">
var c=0;

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
 });

   setInterval(function() {
     $.ajax({
     type: "GET",
     url: 'randomize.php?ck=' + (new Date()).getTime(), 
     cache: false,
        success: function(data) {

          $('#dispeople').html(data);
     }
     });
     },2000);


</script>

谢谢

最佳答案

我认为你的 jquery 代码很好。这是由于 ie 浏览器缓存而发生的。尝试在您的请求中发送一个随机值,并从 php 端返回 time() 以查看它是否实际上正在调用 php 脚本。

关于php - AJAX仅在IE中加载一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823864/

相关文章:

javascript - 如何自动增加选择标签中的日期

javascript - 在 React Flux 中哪里进行 Ajax 调用

javascript - 谷歌中的适当事件用鼠标放置自动完成选择

php - 使用 fromRange 和 toRange 映射一个值?

php - 什么是 https 和 SSL?它们是如何工作的?如何在 PHP 中使用它们?

php - 从具有多个关系的其他表中获取 min()

javascript - 更改控制组事件按钮主题

Javascript 过滤器包含一个或多个字段

java - 带有 Ajax 的 Servlet - POST 有效,但 GET 无效

php - 将 PHP 变量包含到 CSS 中