使用Angular更新Wordpress中的内容/数据?

时间:2015-10-07 14:10:57

标签: angularjs wordpress

我需要帮助才能理解这里的错误,例如我有以下内容:

$http({
    method: 'POST',
    url: '/wp-admin/admin-ajax.php',
    params: {
        action: "update_something_really_cool",
        user_data: "---- :D "
    }
}).success(function(data){
    console.log(data);
});

这将在控制台返回:

Object{'user_data': null}

http请求就是这样的,因为样式如下:

$http.post
$http.get

返回0,表示未触发操作。

在wordpress级别,我有这个:

function update_something_really_cool(){
    $user_data = $_POST['user_data'];
    echo json_encode(array('user_data' => $user_data));
    exit();
}
add_action( 'wp_ajax_update_something_really_cool', 'update_something_really_cool' );
add_action( 'wp_ajax_nopriv_update_something_really_cool', 'update_something_really_cool' );

我尝试使用$.param,但结果仍然相同......

还尝试使用不同的标题:

headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},

有人知道怎么做吗?使用其他操作我没有问题,但是当我需要传递除动作参数之外的其他内容.. :(

1 个答案:

答案 0 :(得分:0)

确实有效的唯一解决方案是:

$http({
    method: 'POST',
    url: '/wp-admin/admin-ajax.php',
    data: $.param({
        action: 'update_something_really_cool',
        user_data: data // object {key:value}
    }),
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
}).success(function(data){
    console.log(data);
    //outputs the sent opbject
});

出于某种原因,$.param之前没有传递正确的值..但是这个解决方案在按照这种方式排序的时候确实有效...我希望它可以帮助一些人;)