如何向WordPress rest API发出FETCH()POST请求?

时间:2021-01-09 作者:Alt C

我正在尝试向rest api发出POST请求。但我正在401 Unauthorised error. 还有人能帮助处理其中的临时事件吗?

#OurPostData:包含标题。

fetch(\'https://mywebsite.online/wp-json/wp/v2/code\',{
      method: \'POST\',
      credentials: \'same-origin\',
      headers: new Headers({\'Content-Type\': \'application/x-www-form-urlencoded\'}),
      body:JSON.stringify(OurPostData),
    }).then(response => {
      console.log(response);
      return response.json();
    });
以下方法有效

var createPost = new XMLHttpRequest();
createPost.open("POST", "https://mywebsite.online/wp-json/wp/v2/code");
createPost.setRequestHeader("X-WP-Nonce", Ajax.nonce);
createPost.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
createPost.send(JSON.stringify(OurPostData));
createPost.onreadystatechange = function() {
  if (createPost.readyState == 4) {
    if (createPost.status == 201) {
      alert("Success");
    } else {
      alert("Error Try Again");
    }
  }
}
谢谢

1 个回复
最合适的回答,由SO网友:Alt C 整理而成

\'X-WP-Nonce\' : Ajax.nonce 丢失了这就是为什么它会出错

  fetch(\'https://mywebsite.online/wp-json/wp/v2/code\', {
      method: \'POST\',
      credentials: \'same-origin\',
      headers: new Headers({
        \'Content-Type\': \'application/json;charset=UTF-8\',
        \'X-WP-Nonce\' : Ajax.nonce
      }),
      body: JSON.stringify(OurPostData),
    }).then(response => {
      console.log(response);
      return response.json();
    });

相关推荐

使用AJAX根据用户角色将自定义字段加载到用户配置文件

我目前正在为患者开发一个在线医生预约插件。医生和患者都需要在网站上注册。可以从用户部分管理用户(医生和患者)。这里的要求是,超级管理员(wp admin)还可以添加任何医生或任何患者来对抗任何医生。需要根据所选用户角色加载自定义字段,即医生(姓名、地址、专家、资格等)或患者(症状、症状开始日期等)我使用以下代码将字段添加到用户部分:add_action( \'user_new_form\', \'dbt_load_usertype_fields\' ); add_action( \'sh