поэтому я работаю с 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()
Метод — мой аксиос запрос.
Итак, я смотрел на похожую проблему в 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));
?>
Других решений пока нет …