Отправить параметры с помощью Axios — VueJS

поэтому я работаю с Axios в VueJS для отправки запросов AJAX. Однако, я получаю небольшую проблему при попытке отправить запросы.

Это мой код JS:

axios.post('http://localhost/app/php/search.php', {
query: this.search //this should send the 'query' param
}).then(response => {
this.variable = response.data
}).catch(e => {
this.errors.push(e)
})

И это search.phpфайл:

<?php

require '../Functions.php';
$obj = new Functions();

$array = $obj->search($_POST['query']);

echo json_encode(array_values($array));
?>

И я получаю следующую ошибку на стороне PHP: Notice: Undefined index: query in /path/to/app/search.php on line 6

Есть ли причина, почему это происходит? Любая помощь с благодарностью.

Обновить

this.search переменная у меня внутри data объект:

data () {
return {
search: ''
}
}

Эта переменная связана с текстовым полем:

<input type="text" v-model="search" @keyup.enter="search()" />

И это внутри моего search() Метод — мой аксиос запрос.

1

Решение

Итак, я смотрел на похожую проблему в Angular, и выясняется, что Аксиос отправлял query пары. Однако в php-файле мне нужно было заполнить переменную POST JSON-файлом из Axios. Вот как я получил это работает:

<?php

require '../Functions.php';
$obj = new Functions();

//Populate POST variable with incoming JSON from Axios.
if ($_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST)):
$_POST = (array) json_decode(file_get_contents('php://input'), true);
endif;

$array = $obj->search($_POST['query']);

echo json_encode(array_values($array));
?>
1

Другие решения

Других решений пока нет …