我有以下jQuery代码:
$.post('php/php_result.php', {'functions':'getpersonaldetails','theuserid':data1}, function(data3, status3) {
var personalDetails = JSON.parse(data3)[0];
alert(personalDetails.last_name);
},'json');
上面的代码有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
指定为我的数据类型时,为什么会出错?
答案 0 :(得分:1)
如果你指示jQuery期待JSON,它将decode it for you automatically:
"json"
:将响应评估为JSON并返回JavaScript 对象即可。除非,否则跨域"json"
请求将转换为"jsonp"
请求在其请求选项中包含jsonp:false。 JSON 数据以严格的方式解析;任何格式错误的JSON都被拒绝了 抛出了一个解析错误。
因此再次解析它不会起作用。
让框架为你完成工作。