WordPressアプリケーションへのローカルホスト要求で、 "wp rest api v2"は問題なく期待どおり動作しています。ローカルホストの投稿要求の例を次に示します。Wordpress wp rest api v2エラー400(不正なリクエスト) "オブジェクト{コード:" rest_invalid_param "、メッセージ:"無効なパラメータ:id "、データ:オブジェクト}
POST "http://127.0.0.1/plugin"名前空間/プラグイン名/ wp-json /プラグイン名前空間/残りのAPI URL「
しかし、私のホストされたサイト上の要求は私のホストされたサイトに、同様の要求を、エラーを返して:
POST」のhttp://my-domain.com/plugin-name/wp-json/plugin名前空間/休憩APIのURL」
私はクロムコンソールに乗る "400(悪いRequest)" オブジェクト{コード: "rest_invalid_param" メッセージ: "無効なパラメータ(複数も可):ID"、データ:オブジェクト}
$ http.post(url、{id:1、shortMessage: "abc"}、{ヘッダー:{'X-WP-Nonce':「私のnonce値」は、 }})); //角の$ httpを使用して投稿要求を作成しています
私は上記のURLの様子を書いています。私が書いた私のプラグインのPHPコードで
:
function myplugin_register_endpoints(){
register_rest_route(
'plugin namespace',
'/rest of the api url',
array(
'methods' => 'POST',
'callback' => 'my_end_point',
'args' => array(
'id' => array(
'required' => true,
'validate_callback' => function($param, $request, $key) {
return is_numeric($param) and ! is_null(get_post($param));//numeric post id value and there is valid post for this id
},
'sanitize_calback' => 'absint'
)
),
'permission_callback' => function (WP_REST_Request $request) {
if(!is_user_logged_in()){
return new WP_Error('login error',__('You are not logged in','blabla'));
}
return true;
}
)
);
}
add_action('rest_api_init','myplugin_register_endpoints');
function my_end_point(WP_REST_Request $request) {
global $current_user;
$current_user = wp_get_current_user();
if($my_var){
return array('message' => $message,'items' => $items,'item'=>$item);
} else {
return new WP_Error('add friend error',__('message'),$request['id']);
}
}
私は、要求が私のホストされたサイト上で失敗している理由を理解する必要があります。
おかげ K