为什么这个Javascript没有触发Ajax事件?


Why is this Javascript not triggering an Ajax event?

我有一个各种各样的论坛,我想每隔一段时间自动刷新帖子。当页面加载开始时,我使用Ajax,稍后我将实现自动刷新。我遇到的问题是(我相信)诱导了一个Ajax请求。我有一个事件处理程序,用于在单击标头时发生Ajax请求(用于调试)。我不会发布我所有的代码,只是最相关的部分在这里,但如果你想你认为可能有一个问题在我的代码在其他地方,随时检查www.ethoma.com/testhome.php发送请求到www.ethoma.com/getposts.php。

Ajax请求函数

function getPosts(category, page, sort)
{
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("postcontainer").innerHTML=xmlhttp.responseText;
        }
}
var queryString = "?category=" + category + "&page=" + page + "&sort=" + sort;
xmlhttp.open("GET","getuser.php" + queryString,true);
xmlhttp.send();
}

我的PHP页面应该通过echo调用返回正确的html代码。顺便说一句,在PHP页面返回的代码中嵌入html标签是可以的(新手问题)?

如果您认为问题不在此代码片段中,请再次随意浏览这两个页面。感谢所有观看/回答这个问题的人——这里的每个人都很有帮助。

我已经查看了您的网站的实时版本,并在onreadystatechange中使用断点运行它。你看不到任何东西的原因是getuser.php 404的。

特别是所谓的URL是http://www.ethoma.com/getuser.php?category=[object%20HTMLAllCollection]&page=1&sort=(我很确定类别是一个bug),并产生404,onreadystatechange然后调用readyState=2和status=404