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>';
}