您需要以application/x-www-form-urlencoded格式发送数据。
axios发送json时$_REQUEST[\'action\']
wordpress未收到,它返回“0”。
要实现这一点,可以使用URLSearchParams API或Qs。
现在假设您的jQuery是这样的
var data = { action: \'get_names\', key2:\'value2\' ...... };
jQuery.post(\'/wp-admin/admin-ajax.php\', data )
.done( function (response) {
console.log(response);
})
.fail( function (error) {
console.log(error);
});
然后使用URLSearchParams,相应的Axios代码将
var params = new URLSearchParams();
params.append(\'action\', \'get_names\');
params.append(\'key2\', \'value2\');
// params.append(\'key3\', \'value3\');
axios.post(\'/wp-admin/admin-ajax.php\', params )
.then( function (response) {
console.log(response.data);
})
.catch( function (error) {
console.log(error);
});
或者如果您正在使用
Qs.js, 您需要在脚本之前将Qs排队
var data = { action: \'get_names\', key2:\'value2\' ...... };
axios.post(\'/wp-admin/admin-ajax.php\', Qs.stringify( data ))
.then( function (response) {
console.log(data);
})
.catch(function (error) {
console.log(error);
});
下面的链接将对此进行更详细的解释。
https://kt12.in/blog/wordpress-ajax-call-using-axios-js/