Потому что
axios
по умолчанию отправляет параметры в теле запроса как
Content-Type: application/json
и чтобы их прочитать нужно в PHP принимать так:
var_dump(file_get_contents('php://input'));
В итоге вы получите JSON-строку и сможет раскодировать ее получив все параметры -
json_decode
Способы отправки параметров в
Content-Type: application/x-www-form-urlencoded
описаны в документации:
https://github.com/axios/axios#using-applicationx-...
Или вы просто можете отправить URL-кодированную строку, а не объект, в параметры:
axios.post('aaa.php?action=create', 'myvalue=строка&sub=ahaha&value=22')
.then(function(response) {
.....