如果指定了数据类型 'json',则出错



我有以下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 .如果我删除数据类型jsonalert工作正常。

我的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 都将被拒绝,并且 引发解析错误。

因此,再次解析它是行不通的。

只需让框架为您完成工作即可。

最新更新