Javascript 使用ajax刷新div而不重新加载页面

Javascript 使用ajax刷新div而不重新加载页面,javascript,ajax,refresh,Javascript,Ajax,Refresh,我正在使用下面的代码刷新包含注释的div,但是有一些东西不能正常工作 60秒后刷新div,刷新后显示0(大约每10秒闪烁一次或类似的内容),而不是更新的注释列表。我不知道 检查源页面时没有发现任何错误 function ajax_com(){ var xmlHttp; try{ xmlHttp=new XMLHttpRequest(); }catch (e){ try{ xmlHttp=new ActiveXObject("Msxml2.XMLH

我正在使用下面的代码刷新包含注释的div,但是有一些东西不能正常工作

60秒后刷新div,刷新后显示0(大约每10秒闪烁一次或类似的内容),而不是更新的注释列表。我不知道

检查源页面时没有发现任何错误

function ajax_com(){
  var xmlHttp;
  try{   
    xmlHttp=new XMLHttpRequest();
  }catch (e){
    try{
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }catch (e){
        try{
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }catch (e){
            alert("No AJAX!?");
            return false;
        }
    }
  }
  xmlHttp.onreadystatechange=function(){
    document.getElementById("tble").innerHTML=xmlHttp.responseText;
    setTimeout('ajax_com()',60000);
  }
  var data = "action=ajax_com";
  xmlHttp.open("POST","http://wwwsite.com/wp-admin/admin-ajax.php",true);
  xmlHttp.send(data);
}
window.onload=function(){
  setTimeout('ajax_com()',60000);
}


问题是
xmlHttp。responseText
0
或为空


您的ajax没有返回任何数据,是吗?尝试使用
Firebug
查看它是否实际返回任何数据。另外,返回的数据可能是结构化的,因此您必须解析响应数据并相应地显示带有不同属性的注释,如海报名称、图片、实际注释等。

您可以使用
onreadystatechange
此方法在多个状态更改时触发

您需要检查
xmlHttp.readyState
属性上的4th状态,该属性是finished状态,如下所示:

xmlHttp.onreadystatechange=function(){
  if (xmlHttp.readyState === 4) {
    document.getElementById("tble").innerHTML=xmlHttp.responseText;
    setTimeout('ajax_com()',60000);
  }
}
您可能还希望检查
xmlHttp.status
是否为200,如下所示:

if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
 ...
}

请您在问题中添加html,好吗?评论1 Comment2好吧,我已经添加了sh0ber所说的内容,但没有更新。在我添加了您的代码后,它会再次刷新,但它仍然输出0,正如Jay Patel所建议的,请尝试使用firebug。如果您不确定如何使用它,那么只需添加警报(xmlHttp.responseText);就在“if”语句之前。第一次它返回空的第二次0,我在搜索谷歌的解决方案,但我没有看到任何人使用alert(xmlHttp.status)执行相同的操作;告诉我在尝试了不同的东西后你得到了什么,我已经看到代码是有效的。我已经用实际的页面替换了“”,在那里我试图实现这个代码,就像在“mysite.com/news”中一样,但是现在在div中我尝试刷新我得到了整个页面的“news”刷新,并且没有需要刷新的页面,我仍然不知道该怎么做