0
我是AJAX的新手,看來我可能會缺少一個非常基本的細節。未捕獲的SyntaxError:解析JSON時出現意外的令牌錯誤
我想在處理AJAX請求時調試服務器端。代碼工作正常,在服務器端註釋掉以下行。
// php_console ($inputName, ' - Field EMPTY!!!');
當上述行執行它給「未捕獲的SyntaxError:意外令牌」的錯誤,而在AJAX成功函數解析JSON數據,在下面的行
var valResponse = $.parseJSON(theResponse);
好像AJAX返回變量'反應'無論如何都是一樣的,至少在我打印時是直觀的。
$("#contentRight").html(theResponse);
爲什麼echo'ing出什麼導致parseJSON打破?
任何幫助將不勝感激。
這裏是AJAX請求:
function performFormValidation(formID, fieldObject, action) {
formFieldsData = prepFormDataForAjax (formID);
var URL = BASE_DIR + 'formValidation.php'
var formData = JSON.stringify(formFieldsData);
$.ajax({
url: URL,
type: 'POST',
data: {data:formData},
success: function(theResponse){
$("#contentRight").html(theResponse);
var valResponse = $.parseJSON(theResponse);
},
error: function(jqXHR, textStatus, errorThrown) {
alert ('Error: ' + errorThrown);
}
});
}
這裏是AJAX過程:
<?php
$data = json_decode($_POST['data']);
$response = array();
foreach ($data as $dataField) {
$inputName = $dataField[0][0];
$formEntry = trim($dataField[0][1]);
$validData = 1;
$errorCode = '';
foreach ($dataField as $pair) {
//////////////////////////////////////////////////////////
// data-rule-required
//////////////////////////////////////////////////////////
if ($pair[0] == 'data-rule-required' && $pair[1] == 'true' && isEmpty($formEntry)) {
// php_console ($inputName, ' - Field EMPTY!!!');
$validData=0; $errorCode=sprintf(_('This field is requided'));
}
}
}
echo json_encode($response);
這裏是php_console功能:
function php_console($data, $alert) {
echo '<script language="javascript">';
echo 'console.log("' . $data . $alert .'")';
echo '</script>';
}