javascript - 处理对 PHP url 的 AJAX 请求以获取 JSON 数据。我无法传递数据

标签 javascript php ajax

我试图将我的数据从 mySQL 数据库传递到 returnData.PHP 到 AJAX 请求,作为 JSON 数据传递到 .js 文件中的 javascript。到目前为止,我可以从 mysql 查询中检索数据并将其编码为 json 。以下是 returnData.php

<?php
  include('../sqlFunctions/sqlFunctions.php');

//Establish connection to database
  $link = linkDB();

//set up a MySQL query
  $sql = "SELECT * FROM shelters;";

  if(!$results = $link->query($sql)){
    die("Query Unsuccessful");
  }

  $rows = array();

  while ($data = $results->fetch_assoc()) {
    $rows[] = $data;
  }
  $JSONRows = json_encode($rows);
  return $JSONRows;
?>  

我使用 AJAX 从 javascript 函数调用此页面,并且需要移交此数据。

  <script type="text/javascript">

    function getData(){
      var dataXMLhttp = new XMLHttpRequest();
      dataXMLhttp.open("GET", "./js/returnData.php", true);
      dataXMLhttp.send();
      if(dataXMLhttp.readyState == 4 && dataXMLhttp.status == 200){
        var XMLdataResult = dataXMLhttp.responseText;
        window.alert("XMLdataResult Contains something.");
      }else{
        window.alert("404");
      }
    }getData();
</script>

我收到 404 消息。显然我的 AJAX 请求被破坏了。返回 $JSONow 显然表明了我的菜鸟。我已经查看并阅读了有关 AJAX 与 PHP 交互的内容,但看不到我所缺少的拼图的各个部分。

我的 AJAX 请求出了什么问题? 如何将 JSON 放入 JavaScript 变量中以进行 PARSing?

感谢您的阅读。

最佳答案

您的ajax函数缺少onreadystatechange事件处理程序,因此它总是会触发alert('404') - 而且函数内命令的顺序是一般是出故障的。通常应在打开连接和发送请​​求之前声明回调。

还指出了相对路径的使用 - 始终使用绝对路径会更容易,

function getData(){
    try{
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange=function(){
            if( xhr.readyState == 4 && xhr.status == 200 ){
                var data = this.response;
                alert( data );
            }
        }                               
        xhr.open( 'GET', '/js/returnData.php', true );
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send();

    }catch( err ){
        alert( err );
    }
}

getData.call( this );

关于javascript - 处理对 PHP url 的 AJAX 请求以获取 JSON 数据。我无法传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44743957/

相关文章:

javascript - 主干 View 属性 : one on instance, 是原型(prototype)上的一个吗?

php - 如何使用 PHP 和 Ajax 将表单数据插入 MySQL 数据库表中?

javascript - AJAX仅显示网页的一部分

javascript - 在 .click jquery 上更改页面不透明度

javascript - 使用轮播幻灯片防止 Hammerjs 的向右滑动事件

javascript - 当单击事件发生在除定义的选择器之外的任何选择器上时调用 JavaScript 函数?

php - 按其他表 ID 过滤表信息

php - 在 MySQL DB 中存储翻译的最佳方式

php - 为什么我不能在 stdClass 上调用 property_exists?

javascript - 从 jquery 通过 AJAX 发送图像数据