WP下的Ajax请求-简单的脚本根本不起作用

时间:2019-05-22 07:26:42

标签: php ajax wordpress

我开始在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);

2 个答案:

答案 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