Javascript 使用ajax刷新div而不重新加载页面
我正在使用下面的代码刷新包含注释的div,但是有一些东西不能正常工作 60秒后刷新div,刷新后显示0(大约每10秒闪烁一次或类似的内容),而不是更新的注释列表。我不知道 检查源页面时没有发现任何错误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
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”刷新,并且没有需要刷新的页面,我仍然不知道该怎么做