我正在 WordPress 4.7.2 上运行的网站中执行 AJAX 调用。我使用 wp_json_encode()
从处理请求的 PHP 函数返回一个数组。当我在 AJAX success
函数中打印数据 array 时,它完全符合预期。但当我尝试打印数组内的单个元素时,它给了我未定义
。
PHP处理函数是这样的
function ajaxHandler(){
//do something
$ret = array( 'score'=>$score );
echo wp_json_encode( $ret );
wp_die();
}
在我的 AJAX 中,
$.ajax({
type: 'POST',
url: ajaxurl,
data: {'action': $my_Action},
success: function(data) {
console.log(data);
console.log(data["score"]);
//also tried console.log(data.score) with same result
},
error: function(data){
console.log("not successful");
}
});
Chrome 中的控制台登录
最佳答案
将响应数据解析为成功回调中的 javascript 对象:
success: function(data) {
var data = JSON.parse( data );
console.log(data);
console.log(data["score"]);
//also tried console.log(data.score) with same result
}
另一种方法是,将 dataType : 'json'
放入 ajax 属性中:
$.ajax({
.....
.....
dataType : 'json',
......
});
关于javascript - 数组存在并已填充,但无法访问 AJAX 响应上的各个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306131/