【问题标题】:Wordpress nonce always returning falseWordpress 随机数总是返回 false
【发布时间】:2021-04-29 20:51:45
【问题描述】:

我的 wordpress API 存在问题,用于验证的 nonce 总是返回 false。我已经尝试注销和注销,API 在身份验证关闭的情况下工作正常。我将包括下面的代码。

add_action('rest_api_init', 'api_init');
add_action('admin_enqueue_scripts', 'enqueue_script');

function api_init() {
    register_rest_route("route/v1/", "/directory/(?P<req>\d+)", array(
            "methods" => ["GET", "POST"],
            "callback" => "api_delegate",
            "permission_callback" => current_user_can("relevant_cap")
    ));

}

function enqueue_script() {
    wp_enqueue_script( 'script_name', '/path/to/ajax/script.js', ['jquery'], '1.0.4', false);

    wp_localize_script('script_name', 'ajax_var', array(
        "url" => esc_url_raw("https://relevant_url.com/"),
        "nonce" => wp_create_nonce('wp_rest')
    ));
}

对于客户端 Javascript

    $(".api").on('click', order66());

    function order66() {
        $.ajax({
            type: 'GET',
            url: '/wp-json/relevant/v1/',
            contentType: "application/json",
            data: {
                "_wpnonce": ajax_var.nonce
            },
            error: function (jqXhr, textStatus, errorMessage) {
                console.log(errorMessage);
            },
            // contentType: 'application/json',
        }).done(function (response) {
            console.log(response);
        });
    }

我也尝试过使用“X-WP-Nonce”标头,但这并没有给出任何不同的结果。任何帮助或指点将不胜感激!

【问题讨论】:

标签: javascript php wordpress nonce


【解决方案1】:

解决了,我需要用匿名函数包装“权限回调”,然后它就像一个魅力!

【讨论】:

    猜你喜欢
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多