对Wordpress REST API的POST请求返回一个空对象



我正在创建一个Gutenberg block内的插件与MediaUpload的zip文件。然后我试着添加一个回调,它将使用zip文件的id来获取附件url,在单独的资产区域创建一个新文件夹(如果还没有),并将文件解压缩到文件夹中。

现在我正试图用REST使用wp.apiFetch来做到这一点。

我已经测试了响应,但即使响应正确通过,对象也是空的。

这是Edit.js文件:

wp.apiFetch({
path: '/name-support/v1/zipped/',
method: 'POST',
data: { id: 'test test test' },
}).then(data => {
console.log('response: ', data);
});

REST API路由设置和回调函数:

add_action( 'rest_api_init', function () {
register_rest_route( 'name-support/v1', '/zipped/', 
[
'methods' => WP_REST_Server::EDITABLE,
'callback' => 'name_image_sequence_unzip',
'permission_callback' => '__return_true'
] 
);
});
function name_image_sequence_unzip($data) {
return rest_ensure_response( $data );
}

我通过在header选项中指定内容类型为application/json来修复此问题:

wp.apiFetch({
path: '/name-support/v1/zipped/',
method: 'POST',
headers: {
"Content-Type": "application/json",
},
data: { id: 'test test test' },
}).then(data => {
console.log('response: ', data);
});

最新更新