Php jquery抛出带有有效JSON响应的SyntaxError

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函数与返回json_encode的php文件通信

ajax功能:

$.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