首页 > 解决方案 > JSON 第 2 行第 1 列的数据意外结束

问题描述

使用非常简单的 JSON 请求时出现错误。

这是带有数据的php:

    <?php 
header('Content-Type: application/json; charset=utf-8');
$riqueza = array(
    "nombre" => "Agustin", "patrimonio" => "US$ 400,000,000") ;
echo json_encode($riqueza, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK | JSON_ERROR_STATE_MISMATCH | JSON_ERROR_CTRL_CHAR | 
JSON_ERROR_SYNTAX | JSON_ERROR_UTF8 | JSON_ERROR_UNSUPPORTED_TYPE | JSON_FORCE_OBJECT | JSON_ERROR_INF_OR_NAN | JSON_PRETTY_PRINT) ;
?>

这是JavaScript的代码:

const AJAX = new XMLHttpRequest;
AJAX.open("GET", "database.php");
AJAX.onload = function() {
if (AJAX.status === 200 && AJAX.readyState === 4) {
    const miRiqueza = JSON.parse(this.responseText) ;
    document.getElementById("minombre").innerHTML = miRiqueza["nombre"] ;
    document.getElementById("mipatrimonio").innerHTML = miRiqueza["patrimonio"] ;
    
}

} 
AJAX.send() ;

为了更加清晰,HTML代码:

<!DOCTYPE html>
<html lang="en">
<script src="interface.js" defer></script>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <table>
<tr>
    <th id="minombre"> </th>
    <th id="mipatrimonio"> </th>
</tr>


    </table>


</body>
</html>

很多人都有同样的错误,但似乎没有一个令人信服的答案;数组类型没有任何可能导致错误的问题,即便如此,我在 php 编码上放置了大量常量,以查看它们是否发现任何错误。但是标题和 GET 请求被收到,没有丝毫问题:看起来我的解析真的很顽固,无法将任何数据转换为对象。问题是什么?如果没有任何明显的问题,我可以使用 $.ajax 或 jQuery 来绕过麻烦吗?它会有所作为吗?

标签: javascriptphpjson

解决方案


json_encode您忘记在 HTTP 响应中发送的内容:

echo json_encode($riqueza);

推荐阅读