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>
我正在尝试在 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>