我如何从Node.js发出对Wordpress的发布请求

时间:2019-01-28 14:24:17

标签: javascript node.js wordpress express

这是我所拥有的,它不起作用。我需要从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' );

1 个答案:

答案 0 :(得分:1)

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

要么发送URI编码的表单数据,要么处理您在服务器上以JSON格式接收的内容。