当我使用已定义的密钥从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"}
答案 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");
}
}
});