【问题标题】:Why is this Javascript not triggering an Ajax event?为什么这个 Javascript 没有触发 Ajax 事件?
【发布时间】:2011-07-27 13:32:34
【问题描述】:

我有一个论坛,我想不时自动刷新帖子。我在页面加载启动时使用 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 标记(新手问题)?

如果您认为问题不在于这段代码 sn-p,请再次随意浏览这两个页面。感谢所有查看/回答此问题的人 -- 这里的每个人都非常乐于助人。

【问题讨论】:

  • 你用什么浏览器?试试xmlhttp.send(null)
  • 你不应该打电话给getposts.php而不是getuser.php吗?
  • Cmon',现在您应该开始使用一些标准化且易于学习的框架,它可以代替您完成整个工作,例如 jQuery 或原型。
  • 那是你在那里进行的一些非常混乱的标记。我数了数三个头和至少两个身体。你应该先解决这个问题,这样你至少知道你的事件是在哪里触发的。
  • ...body 标签之一缺少右括号。不能很好。

标签: php javascript ajax feed


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2016-05-01
    相关资源
    最近更新 更多