javascript - 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 来绕过麻烦吗?它会有所作为吗?
解决方案
json_encode
您忘记在 HTTP 响应中发送的内容:
echo json_encode($riqueza);
推荐阅读
- javascript - 当我在 atom 中编写 JavaScript 时,它的颜色变成了白色,现在所有其他代码也变成了白色
- mysql - 如何在 mysql 和 nodejs 中将登录凭据与用户数据分开?
- java - 如何使用 Instrumentation 的 Java API 捕获 HTTP 请求和响应?
- r - 将变量名称(字符串)数据帧的每一行传递到“选择”函数中,迭代
- javascript - 转义 Json 属性名称
- python - 使用 statsmodels 进行回归时出现 PatsyError
- python - 通过 Django Admin 添加新产品时如何向 MySQL 生成随机 product_id int
- flutter - Flutter,如何从另一个类调用Dialog函数
- c++ - 我创建可被 30 整除的数字的函数在 C++ 中中断
- python - AttributeError:部分初始化的模块“tensorflow”没有属性“config”(很可能是由于循环导入)