2017-04-10 64 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都會被拒絕,並且拋出一個解析錯誤。

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

讓框架爲您做好工作。