【问题标题】:Nodejs send post to admin-ajax.php in wordpress /getting 400 error and 0Nodejs在wordpress /getting 400错误和0中将帖子发送到admin-ajax.php
【发布时间】:2021-09-24 22:56:59
【问题描述】:

我想使用 admin-ajax.php 在 nodejs 上发布到 wordpress,它设置了一些要使用的操作。 但是我得到了 statusCode:400 和 0,我对 wordpress 和 ajax 不太了解。我尝试使用 wordpress 工作项目中的 cookie 来传输 nodejs 我该如何设置?

const https = require("https");

const data = {
  action: "create_chapter",
  postID: "2676",
  chapterName: "2",
  chapterContent: "test",
};

const options = {
  hostname: "www.website.com",
  path: "/wp-admin/admin-ajax.php",
  method: "POST",
  headers: {
    "Cookie": "cookies",
    "X-Requested-With": "XMLHttpRequest",
  },
};

const req = https.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`);
  res.on("data", (d) => {
    process.stdout.write(d);
  });
  
});
req.on("error", (error) => {
  console.error(error);
});

req.write(JSON.stringify(data));
req.end();

【问题讨论】:

    标签: php node.js ajax wordpress


    【解决方案1】:

    要使 ajax 在 wordpress 中工作,您需要指示 wordpress 在收到您的 ajax 请求时应该做什么。

    为此,您需要使用以下内容:

    add_action( 'wp_ajax_create_chapter', 'create_chapter' );
    

    如果您需要它为未登录用户工作,您还需要这个:

    add_action( 'wp_ajax_nopriv_create_chapter', 'create_chapter' );
    

    “nopriv”只是意味着它对所有人开放。您需要将此代码粘贴到您当前的活动主题 functions.php 文件或您可以制作的自定义插件中。

    调用“add_action”后,您只需要创建一个类似的函数 这个:

    function create_chapter(){
       // Code goes here
    }
    

    400 错误和 0 响应通常意味着 wordpress 没有找到任何可以触发的操作,所以它只是给出了那个错误

    如果您想了解更多信息,请阅读full documentation from the wordpress site

    【讨论】:

    • 感谢您的回答。我查看了代码,但找不到章节的 add_action,但是当在 wp-admin 上创建新章节时,主题发送一个 admin-ajax 请求以使用操作创建新章节:create_chapter。
    • 我发现动作在主题的插件中。但我尝试了一切仍然得到 400
    • 如果您尝试调用由某些第三方插件/主题创建的 AJAX 操作,则很难为您提供帮助,因为他们可能在该操作上添加了更多控件,或者他们只是不触发它前端
    【解决方案2】:

    最新变化: 将 wordpress_logged_in 添加到 cookie, 将 req.write 更改为 req.write(data); 添加内容类型:urlencoded 并将数据更改为 url 编码

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      相关资源
      最近更新 更多