【发布时间】:2014-01-15 13:15:21
【问题描述】:
所以我有一个 ajax 函数与返回 json_encode 的 php 文件通信。
ajax函数:
$.ajax({
type: 'POST',
data: sendData,
dataType: 'json',
mimeType: "application/json",
url: 'request.php',
success: function(data){
return data;
}
});
sendData 是这样的:
{ 'action': 'do_stuff', 'id': 5 }
结果是
{"affected_rows":1,"insert_id":0}
我检查了结果中是否有奇怪的终止字符或填充,但什么也没找到。有趣的是,抛出的错误是“Uncaught SyntaxError: Unexpected token o”,这很奇怪,因为结果不是以 o 开头或结尾,而唯一的 o 在中间。
我也尝试过不定义数据或 mime 类型,并使用 JSON.parse(data); 手动解析 json;和 jQuery.parseJSON(data);没有成功。
如果有帮助,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).')' );
}
【问题讨论】:
-
您是否尝试将 error_reporting 设为 0?它可能会生成一些通知或警告,当您在浏览器开发人员工具中分析页面请求时,您会得到什么响应?