这是我所拥有的,它不起作用。我需要从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' );
答案 0 :(得分:1)
您正在发送JSON,但是随后尝试访问它,就好像您发送了URI编码形式一样($_POST['field']
,请参见here)。这有点像在自动售货机上说英语,希望您按下按钮来选择商品。
要么发送URI编码的表单数据,要么处理您在服务器上以JSON格式接收的内容。