2017-04-10 84 views
0

我有以下的jQuery代码:错误数据类型“JSON”被指定

$.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。如果我删除数据类型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为我的数据类型?

+0

'var personalDetails = data3 [0];' –

+0

@Tomalak它不是将json数据发布到某处。它是将json响应解析为来自server的jQuery post。请阅读一次问题。 –

+0

然后这是你的副本。 http://stackoverflow.com/questions/4064444/returning-json-from-a-php-script – Tomalak

回答

1

如果指示jQuery的期待JSON,它会decode it for you automatically

"json"评估响应为JSON,并返回一个JavaScript对象 。跨域"json"请求转换为"jsonp",除非 请求在其请求选项中包含jsonp:false。以严格的方式解析JSON 数据;任何格式不正确的JSON都会被拒绝,并且抛出一个解析错误。

因此,再次分析它不会工作。

让框架为您做好工作。