Php jquery抛出带有有效JSON响应的SyntaxError
因此,我有一个ajax函数与返回json_encode的php文件通信 ajax功能:Php jquery抛出带有有效JSON响应的SyntaxError,php,jquery,ajax,json,Php,Jquery,Ajax,Json,因此,我有一个ajax函数与返回json_encode的php文件通信 ajax功能: $.ajax({ type: 'POST', data: sendData, dataType: 'json', mimeType: "application/json", url: 'request.php', success: function(data
$.ajax({
type: 'POST',
data: sendData,
dataType: 'json',
mimeType: "application/json",
url: 'request.php',
success: function(data){
return data;
}
});
sendData是这样的:
$a = $_POST[action];
$result = call_user_func_array($a, $_POST);
if($result){
echo json_encode( $result );
}else{
echo json_encode( 'There was an error processing your request (Error: '.get_error_id($a).')' );
}
{'action':'do_stuff','id':5}
结果是
{“受影响的_行”:1,“插入_id”:0}
我检查了结果中是否有奇怪的终止字符或填充,但没有发现任何内容。有趣的是,被抛出的错误是“unthySythRealError:意想不到的令牌O”,这是奇怪的,因为结果不是以O开始或结束,而唯一的O在中间。
我还尝试过不定义数据或mime类型,并用json.parse(data)手动解析json;和jQuery.parseJSON(数据);没有成功
如果有帮助,request.php将返回如下数据:
$a = $_POST[action];
$result = call_user_func_array($a, $_POST);
if($result){
echo json_encode( $result );
}else{
echo json_encode( 'There was an error processing your request (Error: '.get_error_id($a).')' );
}
试着说:
header("Content-Type: text/javascript");
之前:
if($result) {
错误消息
Uncaught SyntaxError:Unexpected token o
似乎与JSON有效或无效无关
您确定没有其他配置为运行的AJAX回调吗?(在AJAX全局设置中?)
我假设错误表明JavaScript格式错误(不是无效的JSON).您是否尝试将错误报告设置为0?它可能会生成一些通知或警告,当您在浏览器开发人员工具中分析页面请求时,您会得到什么样的响应?是的,可能有另一个脚本在上面的脚本之后抛出错误executes@JosephPersie:我对你的评论也这么说-“是的,在JSON内容之前可能会有一些PHP通知或警告。”:-)(我对你的评论投了赞成票…)经过长时间的搜索,我发现我试图解析JSON两次。这就是我复制/粘贴旧代码得到的结果。谢谢!例外的响应将是JSON格式,有一种官方注册的MIME类型称为
application/JSON