我仍在尝试清楚地了解API的某些方面。
我有一条定制路线
add_action( \'rest_api_init\', function () {
register_rest_route(\'my-project/v1/\', \'/form/post/\', array(
\'methods\' => \'POST\',
\'callback\' => \'post_form\',
) );
})
我有一个类似的GET,它可以完美地工作:
add_action( \'rest_api_init\', function () {
register_rest_route(\'my-project/v1/\', \'/form/get/\', array(
\'methods\' => \'GET\',
\'callback\' => \'get_form\',
) );
})
返回纯文本+“null”的回调方法(使用var\\u dump,可以使用echo):
function post_form($data) {
var_dump($data);
return;
}
另一个问题的答案中建议的替代回调测试方法):
function post_form($data) {
$data = [ \'foo\' => \'bar\' ];
$response = new WP_REST_Response($data, 200);
$response->set_headers([ \'Cache-Control\' => \'must-revalidate, no-cache, no-store, private\' ]);
return $response;
}
jQuery调用:
$(".my-project-form-submit").click(function(){
var serializedForm = $(\'#my-project-form\').serialize();
$.post("/wp-json/my-project/v1/form/post/", serializedForm, function(data) {
alert(data);
});
});
序列化工作正常,
$.post
然后什么都不会永远发生
alert
永远达不到线。
关于这个帖子,我做错了什么?
这(我认为)不是一个404未找到的案例,我有过,但我认为现在已经纠正了。Chrome控制台中没有JavaScript错误。