Wordpress 自定义 REST 路由返回 400 错误请求

Wordpress custom REST route giving back 400 Bad Request

我正在尝试在 Wordpress 中测试自定义 REST 路由。我自己的插件文件中有以下 PHP:

add_action( 'rest_api_init', function() {
    register_rest_route('tuck-api/v1', '/send_campaign', array(
        'methods' => 'POST',
        'callback' => 'campaign_email_route'
    ));
});
function campaign_email_route( WP_REST_Request $request ) {
    return json_encode($request->get_json_params());
}

现在我只想让它回显请求正文作为测试。我在管理面板中使用来自我的插件的以下 jQuery AJAX 请求来调用它:

$.ajax({
    type: 'POST',
    url: '/wp-json/tuck-api/v1/send_campaign',
    contentType: 'application/json',
    data: {
        recipient: $('.email-recipient').val(),
        campaign_id: campaignList[i].id.toString()
    },
    success: function(res) {
        console.log(res);
    }
});

成功回调中的 console.log 是吐出 400 Bad Request 错误的原因。

试试这个代码

Class SendCampaign{

  public function __construct() {
        add_action( 'rest_api_init', array( $this, 'campaign_init_rest_api') );
    }

    public function campaign_init_rest_api()
    {
      register_rest_route('tuck-api/v1', '/send_campaign', array(
          'methods' => 'POST',
          'callback' => array( $this, 'campaign_email_route')
      ));
    }


    function campaign_email_route($data ) {
        $request = $data['data'];     
        echo json_encode($data['data']);
        exit;
    }

}

$SendCampaign = new SendCampaign();



<script>
  jQuery.ajax({
      type: 'POST',
      url: '/wp-json/tuck-api/v1/send_campaign',
     // contentType: 'application/json',
      data: {data:{
          recipient: jQuery('.email-recipient').val(),
          campaign_id:  campaignList[i].id.toString()}
      },
      success: function(res) {
          console.log(res);
      }
  });
</script>