Axios не отправляет данные на сервер - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь создать форму проверки логина в React, и я использую axios для вызовов базы данных.

Дело в том, что я устанавливаю контакт с сервером - я получаю 200 ответов, но данных, которые я публикую, нет.

Это то, что я сделал в первый раз:

const user = {username: this.state.username, password: this.state.password}
axios.post("http://localhost:80/thinksmart/post_requests/login.php", user)
.then(res => console.log(res))
.catch(err => console.log(err))

Затем я попробовал другой подход - где я настроил базовый URL:

const api = axios.create({baseURL: 'http://localhost:80'})
    api.post("/thinksmart/post_requests/login.php", user)
    .then(response => {
        console.log(response)
    })
    .catch(error => 
        console.log(error)
    )

и ни один из них не сработал.

В PHP я делаю только это:

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type'); 
echo json_encode($_POST);

и я получаю пустой массив, даже если мне отправлены данные (данные пользователя)

1 Ответ

2 голосов
/ 20 апреля 2019

Вы можете решить эту проблему двумя способами: 1- Изменения кода PHP : чтобы получить данные JSON в бэкэнде, вам нужно выполнить следующий код вместо $_POST:

$json = file_get_contents('php://input');

2- Изменения кода Javascript : Чтобы получить данные в бэкэнде с помощью $_POST, вам необходимо отправить их с помощью FormData. Более подробную информацию можно найти по следующей ссылке: отправка запросов axios с использованием данных формы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...