我正在使用以下代码刷新包含注释的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);
}
答案 0 :(得分:0)
问题是xmlHttp.responseText
是0
或是空的。
你的ajax没有返回任何数据,不是吗?尝试使用Firebug
查看它是否实际返回任何数据。此外,返回的数据可能是结构化的,因此您必须解析响应数据并相应地显示注释,使用不同的属性,如海报名称,图片,实际评论等。
答案 1 :(得分:0)
您使用onreadystatechange
此方法是在多个状态更改时触发的。
您需要检查xmlHttp.readyState
属性已完成状态的第四状态,如下所示:
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) {
...
}