我正在创建一个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);
});