ajax 请求的响应在我的本地环境和我的实时服务器上是不同的

Response of ajax request is different on my local environment and my live server

在我的本地环境中,我的 ajax 响应是预期的 json 对象,它仅包含我从 sql 数据库请求的对象及其值对,但一旦上传到hostgator 的响应要大得多,我的对象只能在响应对象的 responseText 值中找到。

responseText 属性 在我的本地环境中不存在,因此在我的实时环境中直接访问它会使我的本地和实时代码不同步,并且在进行更新时可能会导致问题加上 responseText 是一个字符串包含以 // 开头的我的对象,这使得在不进行解析和类型转换的情况下难以访问。

我打算 post 这些对象,但它们的格式不正确,除非我重新创建它们并且来自 hostgator 服务器的响应太大而无法重新创建。相反,这里是我的 php 脚本如何 returning sql 数据。

    $db = new PDO('mysql:host='.constant('DB_HOST').';dbname='.constant('DB_NAME').';charset=utf8', constant('DB_USER'), constant('DB_PW'));

    $sth = $db->prepare('SELECT `index`, Todays_Date, First_Name, Middle_Name, Last_Name, Telephone, Position  FROM application');
    $sth->execute();

    $result = $sth->fetchAll(PDO::FETCH_ASSOC);

    $row_count = count($result);

    if($row_count > 0){
        echo json_encode($result);
    }else{
        echo "No records found.";
    }

    // ajax call update 
    var listAjax = function() { 
    $.ajax({
        url: "api/listAll.php",
        dataType: "json",
        type: "GET",
        data: {},
    }).done(function(data) {
        buildList(data);
        console.log(data);
    }).fail(function(data) {
        //console.log(data);
    })
}

也许有更好的方法从 php return 我的 json 对象?或者这可能是我 运行 没有涉及的常见问题。让我知道是否需要从响应对象中查看其他内容。感谢您的帮助。

更新:添加了 ajax 代码。确实看到来自服务器的带有响应文本的较长响应没有通过注释掉的失败,但它确实有一个状态 200。试图 post 它的图像但堆栈溢出不会让我。这是响应输出照片的 link: http://i1378.photobucket.com/albums/ah114/Dakota_Hipp/IMG_1158_zps32xytuqx.png

根据讨论:

在显示的图像中,有一个 // 被添加到回显数据的开头,这使您的 JSON 无效。您需要回溯您请求的 URL 中包含的文件:url: "api/listAll.php" 并删除 // 以使您的 JSON 再次有效。