我正在处理一个ajax请求,我的函数上有几个ajax请求。php。所有这些都在发挥作用,但这:
在我的php上,我有:
add_action("wp_ajax_fb_points", "get_fb_points");
add_action("wp_ajax_nopriv_fb_points", "get_fb_points");
function get_fb_points(){
    if ( !wp_verify_nonce($_REQUEST[\'nonce\'], \'fb_points_nonce\')) {
        exit(\'No naughty business\');
    }
    echo \'yeah\';
    die();
}
 在页脚上。php我有:
FB.Event.subscribe(\'edge.create\',
    function(response) {
        if(response == \'<?php echo get_facebook_profile(\'link\'); ?>\') {
            $.ajax({
                url: \'<?php echo admin_url(\'admin-ajax.php\'); ?>\',
                data: { action: \'fb_points\', challenge : 2, nonce : \'<?php echo wp_create_nonce(\'fb_points_nonce\'); ?>\' },
                async: false,
                success: function(data){
                    console.log(data);
                }
            });
        }
    }
);
 但我不知道为什么它不起作用,请求-响应是“没有令人恶心的事情”。有谁能帮我找出问题所在吗?
 
                SO网友:Chris_O
                使用ajax传递数据时,我更喜欢使用check_ajax_referer 而不是wp\\u verify\\u nonce。
B.Event.subscribe(\'edge.create\',
    function(response) {
        if(response == \'<?php echo get_facebook_profile(\'link\'); ?>\') {
            $.ajax({
                url: \'<?php echo admin_url(\'admin-ajax.php\'); ?>\',
                data: { action: \'fb_points\', challenge : 2, _ajax_nonce : \'<?php echo wp_create_nonce(\'fb_points_nonce\'); ?>\' },
                async: false,
                success: function(data){
                    console.log(data);
                }
            });
        }
    }
);
function get_fb_points(){
    check_ajax_referer( \'fb_points_nonce\');
    echo \'yeah\';
    die();
}
 我相信您的方法不起作用,因为您使用的是$\\u请求而不是$\\u POST。
function get_fb_points(){
    $nonce = $_POST[\'nonce\'];
    if ( !wp_verify_nonce( $nonce, \'fb_points_nonce\')) {
        exit(\'No naughty business\');
    }
    echo \'yeah\';
    die();
}