【发布时间】:2018-07-15 00:14:38
【问题描述】:
我有一个向 PHP 发出 AJAX POST 请求的页面,PHP 正在查询 MySQL,并返回一个 JSON 对象来计算查询响应。这一切都在工作,但它停止了,我不知道出了什么问题。
这是发出请求的 JS,getDriver.js
var driverList = [];
$.ajax({
url: './php/GetDriverList.php',
type: 'post',
success: function(response){
console.log(response);
var tempList = JSON.parse(response);
for(var i = 0; i < tempList.length; i++){
driverList.push(tempList[i]);
}
buildTable(driverList);
}
});
这里是 PHP,GetDriverList.php
<?php
$conn = new mysqli('localhost', 'root', '');
$result = mysqli_query($conn, "USE test") or die(mysql_error());
$result = mysqli_query($conn, "SELECT id, fname, lname FROM drivers WHERE
isActive = 1");
$rows = array();
while($r = mysqli_fetch_assoc($result)){
$rows[] = $r;
}
$return = json_encode($rows);
echo $return;
?>;
错误信息如下:
Error:
VM6389:1 Uncaught SyntaxError: Unexpected token ; in JSON at position 183
at JSON.parse (<anonymous>)
at Object.success (getDrivers.js:9)
at u (jquery-3.3.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.3.1.min.js:2)
at k (jquery-3.3.1.min.js:2)
at XMLHttpRequest.<anonymous> (jquery-3.3.1.min.js:2)
success @ getDrivers.js:9
u @ jquery-3.3.1.min.js:2
fireWith @ jquery-3.3.1.min.js:2
k @ jquery-3.3.1.min.js:2
(anonymous) @ jquery-3.3.1.min.js:2
XMLHttpRequest.send (async)
send @ jquery-3.3.1.min.js:2
ajax @ jquery-3.3.1.min.js:2
(anonymous) @ getDrivers.js:5
我在 getDrivers.js 中删除了一些 cmets,第 9 行对应于“console.log(response)”。但是,此行无法登录到控制台。
最后,我在 Chrome 中从控制台的网络选项卡中拉出的 JSON 对象如下:
[{"id":"2","fname":"XXXX","lname":"XXXX"},
{"id":"3","fname":"XXXX","lname":"XXXX"},
{"id":"4","fname":"XXXX","lname":"XXXX"},
{"id":"5","fname":"XXXX","lname":"XXXX"}];
请帮忙!我的 JSON 对象突然出了什么问题?
【问题讨论】:
-
;预计不会在那里。检查你为什么得到那个。导致错误的原因
-
Json 数据最后不能包含
;。您在编码数据时缺少一些东西。
标签: javascript php jquery mysql json