我尝试将json数据发送到一个自定义REST API端点,该端点将简单地返回发送的数据。我不知道我需要做什么来传递这些数据。我现在得到一个空白对象。
PHP代码:
define( 'BRIGHTBRID_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
//Localize/register/enqueue javascript file
add_action( 'init', 'bbwd_enqueu' );
function bbwd_enqueu() {
wp_register_script( "bright-bridge-custom", BRIGHTBRID_PLUGIN_URL.'assets/brightbridgeweb.js', array('jquery'));
wp_localize_script( 'bright-bridge-custom', 'bbwdAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'bright-bridge-custom' );
}
//Add custom REST Endpoint
add_action( 'rest_api_init', function($data) {
register_rest_route( 'bright-bridge-custom-code/v1', '/test', [
'methods' => 'POST',
'callback' => 'test',
] );
} );
function test($data){
return $data;
}
//button to exicute ajax request to REST API
add_shortcode( 'bp_testing', 'bp_test' );
function bp_test(){
return "<button onclick='testClick()'>Test Me</h2>";
}
JavaScript代码:
function testClick(){
let data = ["test", "Test2"]
jQuery.ajax({
url: window.location.origin+'/wp-json/bright-bridge-custom-code/v1/test',
type: "POST",
data : data,
success:function(result){
console.log(result);
},
timeout: 0,
error:function(error){
console.log(error);
}
});
}
1条答案
按热度按时间eimct9ow1#
你在test函数中返回了一个
$data
对象,这个对象的类型是WP_REST_Request Object
,在返回之前,它是以json格式编码的。因此,要获取除
{}
(空白)以外的任何对象,可以返回数据库查询的结果或任何其他类型的对象。例如,通过改变函数:
对此: