在WordPress中使用AngularJS $http不会像预期的那样响应

Using AngularJS $http with WordPress doesn't respond as expected

本文关键字:响应 WordPress AngularJS http      更新时间:2023-09-26

我已经为我的ajax做了一个wp_localize_script:

wp_localize_script('cb_admin_js', 'cbAjax', array('ajax_url' => admin_url( 'admin-ajax.php' )));

在角我做了一个$http.get()执行测试:

$http.get('http://localhost/wp-admin/admin-ajax.php',{action:'get_saved_cover'}).then(function(data){
        console.log(data);
    });

我的函数应该只返回一组汽车:

add_action( 'wp_ajax_nopriv_get_saved_cover', 'get_saved_cover' );
add_action( 'wp_ajax_get_saved_cover', 'get_saved_cover' );
function get_saved_cover(){
    $cars=array("Volvo","BMW","Toyota");
    return json_encode($cars);
    wp_die();
}

我只得到回data: 0, status: 200,和一些其他的标准响应在一个数组。

我不确定我是否错过了Angular想要的部分。

将angular的http参数改为params而不是data

 $http({
    url: 'http://localhost/wp-admin/admin-ajax.php',
    method: "GET",
    params: {action: "get_saved_cover"}
}).then(function (response) {
   console.log(response.data);
});