javascript - ajax 调用 PHP 数据返回 VM92 :1 Uncaught SyntaxError: Unexpected token {

标签 javascript php jquery ajax

任何人都可以为我指出正确的方向,为什么我从这个 ajax 调用中收到意外的 token “}”?我已经检查了我的错误中是否有任何额外的字符,但我没有发现任何字符。我的 JSON 无法在线验证,但这没有意义,因为我没有手动创建 JSON。如果 VM98 对某人有任何影响,则该错误会发生。任何帮助将不胜感激。

$.ajax({
    cache: 'false',
    type: 'GET',
    dataType: "json",
    url: 'list.php',
    success: function(result){
        var list = JSON.parse(result);
        console.log(list);

   },
   error: function(){
       console.log('error');
   }
});
<?php
$sql = "SELECT * FROM lists";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_object()) {
        $json_user = json_encode($row);
        echo $json_user;
    }
} else {
    echo "0 results";
}

最佳答案

您将多个 JSON 字符串连接在一起,这不是有效的 JSON 字符串。

你的 JSON 看起来像这样:

{"key":"value1"}{"key":"value2"}{"key":"value3"}

您需要将所有行放入一个数组中并将其编码为 JSON。
您可以在一次调用中获取所有行并回显 JSON 编码数据,而不是在 while 循环中回显每一行。

echo json_encode($result->fetch_all(MYSQLI_ASSOC));

这应该会产生类似的结果:

[{"key":"value1"},{"key":"value2"},{"key":"value3"}]

关于javascript - ajax 调用 PHP 数据返回 VM92 :1 Uncaught SyntaxError: Unexpected token {,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36075646/

相关文章:

javascript - jquery 从 UL 中选择所有 LI,而不是在具有类的 UL 元素中

javascript - 使用 attr jquery 删除样式属性

php - Codeigniter 一次加载页眉和页脚

jquery - 在 Chrome 中获得焦点模糊的元素

javascript - Jquery 不允许我添加 $(this).html();

java - 我遇到数字格式异常

javascript - 在同一页面中同时使用 Prototype 和 jQuery 时出现问题

javascript - 检查客户端是否单击仅在 CSS 文件中定义的图像,例如类的背景

php - 无限图像上传到服务器和名称、类别等和多个图像路径(1 行)到数据库

php - reCAPTCHA 在本地主机上工作,但不在远程服务器上工作