我有以下jQuery代码:
$.post('php/php_result.php', {'functions':'getpersonaldetails','theuserid':data1}, function(data3, status3) {
var personalDetails = JSON.parse(data3)[0];
alert(personalDetails.last_name);
},'json');
上面的代码有 en Syntax Error: JSON.parse: unexpected chacter at line1 column 2 of the JSON data
.如果我删除数据类型json
,alert
工作正常。
我的PHP:
$queryStmt = "SELECT merch_id, last_name, first_name, middle_name, birthday, contact_no, address FROM merchandiser WHERE merch_id=:userId";
$queryPrepare = $dba_connect->prepare($queryStmt);
$queryPrepare->execute(array(':userId'=>$_POST['theuserid']));
$queryResult = $queryPrepare->fetchAll(PDO::FETCH_ASSOC);
$queryPrepare->closeCursor();
$jsonResponse = json_encode($queryResult);
echo $jsonResponse;
为什么当我将json
指定为我的数据类型时出错?
如果你指示 jQuery 期待 JSON,它会自动为你解码:
"json"
:将响应评估为 JSON 并返回 JavaScript 对象。跨域"json"
请求将转换为"jsonp"
,除非 该请求在其请求选项中包含 JSONP: FALSE。该 JSON 数据以严格的方式解析;任何格式错误的 JSON 都将被拒绝,并且 引发解析错误。
因此,再次解析它是行不通的。
只需让框架为您完成工作即可。