【问题标题】:can't figure ajax responsetext无法计算ajax响应文本
【发布时间】:2012-09-15 22:47:28
【问题描述】:

我是 Web 开发的新手,正在尝试编写简单的代码来使用 JavaScript 和 AJAX 更改 HTML 元素的可见性,但我的代码无法正常工作。

我运行的 PHP 脚本很简单:

    <?php
     echo TRUE;
    ?>

JavaScript 代码是:

function getuname() {
  //create_xmlhttpobj();
  var userName = document.getElementById('uName');

  var url = "http://localhost/test.php";
  //script that returns whether username exisits or not

  request.open("GET", url, true);
  request.send(null);
  request.onreadystatechange = updatepage();
  //alert(userName.value);
}

function updatepage() {
  //alert(request.readyState);
  alert(request.readyState);
  //alert(request.responseText);
  if (request.readyState == 4) {
    alert('here123');
    togvis();
  }
}

语句alert(request.responseText); 显示一个空白警告框。

谁能告诉我我做错了什么?

【问题讨论】:

  • 既然你说你是 web 开发的新手,而且我一般认为是开发,也许看看stackoverflow.com/questions/3616181/callback-function-meaning 来理解回调函数会有所帮助。
  • 如果这是您的 JavaScript 代码的直接复制/粘贴,那么我建议您养成以更易读的方式对其进行格式化的习惯。从长远来看,它将对您有所帮助,并帮助我们更轻松地了解您要做什么:-)
  • 我正在进行 epascarello 的回答中目前正在进行的“对话”......是的,如果您的 AJAX 代码中的 URL 不同,您很可能会遇到“同源策略”而不是您用于加载页面的 URL。他们最终是否从同一个地方请求信息并不重要,浏览器不知道这一点。按照 hongaar 的说法,确保 URL 相同(必要时包括端口)
  • 加载页面的 url 是什么?
  • 如何解决这个错误??我的 php 文件在文档/项目目录中,我正在使用 wamp

标签: javascript html ajax web-applications


【解决方案1】:

您正在调用函数updatepage,而不是分配它。

request.onreadystatechange = updatepage();

需要

request.onreadystatechange = updatepage;

【讨论】:

  • 感谢真正的快速响应,但 request.responseText 的警报框仍然显示为空。
  • @vaibhav - 您是否尝试过使用 Firebug for Firefox(我个人最喜欢的)或 Chrome 和 IE 中的内置开发人员工具(按 F12)?它们将允许您在 javascript 中设置断点并准确查看代码中的 request 对象包含的内容
  • 你在检查 if 语句中的 responseText 吗?
  • @freefaller - 我检查了 chrome 的控制台,它显示了以下 msg XMLHttpRequest cannot load localhost/test.php。 Access-Control-Allow-Origin 不允许来源127.0.0.1:8020。我做错了什么?
  • 我相信,@vaibhav,epascarello 已经击中了它的头部......您当前(已注释)的 \\alert(request.responseText); 行超出了 if 语句,如果在该位置未注释将在readyState == 4 之前运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多