我正在尝试为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
答案 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'