Ajax json_encode错误:"未捕获的SyntaxError:意外的令牌:"用键返回数组时

时间:2015-01-27 20:27:51

标签: php jquery ajax

当我使用已定义的密钥从php发送json_encode时,Chrome控制台显示错误,但在我没有定义密钥时有效:

"未捕获的SyntaxError:意外的令牌:"

这个PHP ajax_return_array.php代码有效:

 $array = array("a","b","c","d");
 echo json_encode( $array );

此PHP ajax_return_array.php代码失败:

 $array = array(1=>"a",2=>"b",3=>"c",4=>"d");
 echo json_encode( $array );

jquery ajax:

$.ajax({
    type: "POST",
    url: "ajax_return_array.php",
    success: function(result) {
        if(result) {
            resultObj = eval (result);
            alert( resultObj );
        } else {
            alert("error");
        }
    }
});

这是导致错误的json数据: {" 1":""" 2":" B"" 3":" C"" 4":" d"}

1 个答案:

答案 0 :(得分:1)

jQuery的ajax函数应该自动将响应解析为一个对象。只需删除eval语句并将响应分配给您的resultObj即可。此外,由于您没有发布任何内容,因此它应该是" GET",这是默认的。 (别忘了改变你的PHP代码)。

$.ajax({
    url: "ajax_return_array.php",
    success: function(result) {
        if(result) {
            resultObj = result;
            alert( resultObj );
        } else {
            alert("error");
        }
    }
});