【问题标题】:How can I make a post request to wordpress from nodejs如何从nodejs向wordpress发出发布请求
【发布时间】:2019-01-28 23:04:02
【问题描述】:

这就是我所拥有的,但它不起作用。我需要从 nodejs 应用程序更新 wordpres 的 acf 字段:

var username = 'username';
var password = '****';
var auth = 'Basic ' + Buffer.from(username + ':' + 
password).toString('base64');


var clientServerOptions = {
uri: 'http://localhost/wp-admin/admin-ajax.php',
body: JSON.stringify({action:'microserviceOnline', update : '1', field : 'wschannel_status', micro: '138'}),
method: 'POST',  
headers: {
  'Content-Type': 'application/json',
  'accept': 'application/json',
  'Authorization': auth
 }
} 


request(clientServerOptions, function (error, response) { 
    console.log(response);
});

这是我在主题文件夹中的 functions.php 中的内容:

function microserviceOnline() {
  global $post;

  // Update the field 
  update_field($_POST['field'], $_POST['update'], $_POST['micro']);

  die(':)');  

}
add_action( 'wp_ajax_nopriv_microserviceOnline',  'microserviceOnline' );
add_action( 'wp_ajax_microserviceOnline','microserviceOnline' );

【问题讨论】:

  • 你能进一步解释什么不起作用吗?
  • 它不会更新 wschannel_status acf-field :(

标签: javascript node.js wordpress express


【解决方案1】:

您正在发送 JSON,但随后尝试访问它,就好像您发送了一个 URI 编码的表单($_POST['field'] 等,请参阅here)。这有点像对着自动售货机说英语,希望您按下按钮来选择您的商品。

要么发送 URI 编码的表单数据,要么将您在服务器上收到的内容处理为 JSON。

【讨论】:

  • 这是我从 console.log(response) statusCode: 400, statusMessage: 'Bad Request',
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2017-09-26
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
相关资源
最近更新 更多