jquery使用有效的JSON响应抛出SyntaxError

时间:2013-12-27 23:34:48

标签: 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){
            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).')'  );
        }

2 个答案:

答案 0 :(得分:0)

错误消息Uncaught SyntaxError: Unexpected token o似乎与JSON无效或无效无关。

你确定没有其他配置运行的AJAX回调吗? (在AJAX全球设置?)

我认为错误表明JavaScript格式不正确(不是无效的JSON)......

答案 1 :(得分:-1)

尝试放置:

header("Content-Type: text/javascript");

之前:

if($result) {