首页 > 解决方案 > check_ajax_referer 返回 -1

问题描述

我正在为 wordpress 构建一个自定义 API 端点,当尝试使用 nonce 保护它时,我无法让 check_ajax_referer() 返回除-1之外的任何内容。

我正在使用 fetch 来调用我的 API。

这是我的 javascript 前端:

var nonce = '<?php echo wp_create_nonce('wp_rest'); ?>';
...
fetch('https://sdfsdf.dk/wp-json/bookings/v1/book/', {
    method: "POST",
    headers: {"Content-type": "application/json","X-WP-Nonce" : nonce},
    body: raw 
})

在我的 PHP 后端,我有这个:

function post_draft_booking( WP_REST_Request $request ) {
    check_ajax_referer('wp_rest');
    
    Do something... 
}

add_action( 'rest_api_init', function () {
    register_rest_route( 'bookings/v1', '/book/', array(
        'methods' => 'POST',
        'callback' => 'post_draft_booking',
        'permission_callback' => function () {
      return current_user_can( 'edit_others_posts' );
    }
  ) );
} );

运行 javascript 时,控制台中返回 -1。

我在这里做错了什么?

BR克雷斯顿

标签: javascriptwordpressapifetch

解决方案


推荐阅读