我开始在WP下开始学习有关AJAX请求的知识,但是很不幸,我坚持了刚开始的时候,不知道我做错了什么。我写的非常基本的代码根本不起作用。我阅读了文档,但无济于事,所以我决定问您问题出在哪里。
PHP
function pt_get_participants(){
echo json_encode('test');
}
protected function filtrateParticipants($update = false, $dataToFiltration=[]){
wp_enqueue_script( 'pt-script-main', get_parent_theme_file_uri().'/assets/js/ptAjaxHandler.js' , array(), '1.0.0', true );
$protocol = isset($_SERVER['HTTPS']) ? 'https://' : 'http://';
wp_localize_script( 'pt-script-main', 'pt_data', array(
'ajax_url' => admin_url('admin-ajax.php', $protocol),
'nonce' => wp_create_nonce( "pt_participant_nonce" ))
);
add_action('wp_ajax_nopriv_pt_get_participants', array($this, 'pt_get_participants'));
add_action('wp_ajax_pt_get_participants',array($this, 'pt_get_participants'));
}
Java脚本
(function($) {
$(document).ready(function(){
var data = {
action: 'pt_get_participants',
nonce: pt_data.pt_participant_nonce,
success: 'success'
};
$.get(pt_data.ajax_url, data, function(res){
console.log(res);
});
});
console.log('test');
})(jQuery);
答案 0 :(得分:0)
尝试一下
(function($) {
$(document).ready(function(){
var data = {
action: pt_get_participants.ajax_url,
nonce: pt_data.pt_participant_nonce,
success: 'success'
};
$.get(pt_data.ajax_url, data, function(res){
console.log(res);
});
});
console.log('test');
})(jQuery);
答案 1 :(得分:0)
如何在哪里调用滤液参与者方法?
在类构造函数中执行类似操作可能会有所帮助
add_action('init', [ $this, 'filtrateParticipants'] );
此外,您的代码中有错字
您正在粘贴名为 nonce
的参数' nonce '=> wp_create_nonce(“ pt_participant_nonce”))
您正在尝试将其用作 pt_participant_nonce
现时:pt_data。 pt_participant_nonce