猿问

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

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


慕田峪9158850
浏览 144回答 2
2回答

料青山看我应如是

你如何调用 filtrateParticipants 方法以及在哪里?在你的类构造函数中做这样的事情可能会有所帮助add_action('init', [ $this, 'filtrateParticipants'] );另外,您的代码中有错字您正在传递名为nonce 的参数' nonce ' => wp_create_nonce("pt_participant_nonce"))而您正试图将其用作pt_participant_nonce随机数:pt_data。pt_participant_nonce
随时随地看视频慕课网APP
我要回答