所以我有一个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(数据);没有成功。
如果有帮助,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).')' );
}
答案 0 :(得分:0)
错误消息Uncaught SyntaxError: Unexpected token o
似乎与JSON无效或无效无关。
你确定没有其他配置运行的AJAX回调吗? (在AJAX全球设置?)
我认为错误表明JavaScript格式不正确(不是无效的JSON)......
答案 1 :(得分:-1)
尝试放置:
header("Content-Type: text/javascript");
之前:
if($result) {