没有得到MDN AJAX示例的回复

时间:2015-03-16 17:59:00

标签: javascript php jquery ajax

我之前尝试使用AJAX与PHP进行交互(第一次使用Javascript到任何重要程度)并且没有成功,所以我尝试使用Mozilla Developer Network示例作为测试开始使用基础知识:

示例 - https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

即使我直接从网站上复制粘贴它只进行了一次更改(将网址设置为我的测试页面,在XAMPP上运行),这也无法正常工作。当我单击按钮运行MDN脚本时,结果输出是警报“请求有问题”。

我正在使用Firebug来检查结果,它显示状态的“200 OK”代码。如果我正确理解了脚本,那不应该导致错误消息吗?

以下是示例中的代码(以及我正在使用的Foundation框架中的代码,如果出现问题的话):

    <!doctype html>
<html class="no-js" lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Foundation | Welcome</title>
    <link rel="stylesheet" href="css/foundation.css" />
    <script src="js/vendor/modernizr.js"></script>



</head>
<body>
<span id="ajaxButton" style="cursor: pointer; text-decoration: underline">
  Make a request
</span>

<script src="js/vendor/jquery.js"></script>
<script src="js/foundation.min.js"></script>


<script type="text/javascript">
(function() {
  var httpRequest;
  document.getElementById("ajaxButton").onclick = function() { makeRequest('http://localhost:8000/pages/test.html'); };

  function makeRequest(url) {
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
      httpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
      try {
        httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
      } 
      catch (e) {
        try {
          httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (e) {}
      }
    }

    if (!httpRequest) {
      alert('Giving up :( Cannot create an XMLHTTP instance');
      return false;
    }
    httpRequest.onreadystatechange = alertContents;
    httpRequest.open('GET', url);
    httpRequest.send();
  }

  function alertContents() {
    if (httpRequest.readyState === 4) {
      if (httpRequest.status === 200) {
        alert(httpRequest.responseText);
      } else {
        alert('There was a problem with the request.');
      }
    }
  }
})();
</script>
</body>

以下是我所做的测试HTML页面的代码:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
</head>
<body>

Test


</body>
</html>

我哪里错了?

编辑 - 添加正在引用的原始PHP脚本。我最初试图在此使用更改版本的MDN脚本,但同样无法使其工作:

<?php
require ('includes/config.inc.php'); 
require (MYSQL);

$u = NULL;
$P = NULL;

$u = mysqli_real_escape_string ($dbc, $_GET['username']);
$p = mysqli_real_escape_string ($dbc, $_GET['password']);
$q = "SELECT user_id FROM users WHERE (username='$u' AND password=SHA1('$p')) AND active IS NULL";      
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

if (@mysqli_num_rows($r) == 1) { // A match was made.

    $a = 'True';
    print json_encode($a);

} else { // No match was made.

    $a = 'False';
    print json_encode($a);
}

?>

2ND EDIT - 感谢您提供有关控制台日志的建议。我需要做的就是启用CORS,现在它可以正常工作。

0 个答案:

没有答案