WP函数没有接收Ajax变量

时间:2017-12-12 18:30:07

标签: php wordpress

我正在尝试为WordPress学习一些AJAX,但却似乎很难理解它应该很简单。 AJAX函数正确获取ID,通过admin-ajax.php(我可以在devtools的XHR选项卡中看到)发送它,但函数不会收到它。我错过了什么?

jQuery(document).ready( function($) {

    var post_id = $('article').attr('ID');
    post_id = post_id.replace('post-','');
    console.log(post_id);

    $.ajax({
        url: updatecount.ajax_url,
        data : {
            action : 'updateCount',
            post_id : post_id,
        },

        success : function( data ) {
           console.log(data)
        },

        error : function( data ) {
            console.log('failed');
        }

    })
})

...它正在调用的函数如下:

function updateCount() {

    $post_id = intval($_POST['post_id']);
    echo 'Function has ID as: '. $post_id;
    die(); 
}

这将返回以下控制台输出:

AJAX has ID as: 187963
Function has ID as: 0

1 个答案:

答案 0 :(得分:1)

默认情况下,jQuery.ajax会发出GET个请求,但您需要检查$_POST中的数据。您要么想要在PHP端检查$_GET,要么将method: 'POST'添加到jQuery.ajax选项对象。

请注意,如果您使用的是非常旧的jQuery(1.9.0之前版本),那么根据docs on the options object,您需要使用type: 'POST'代替method: 'POST'