Не получается передать данные между React приложением и php
Я передаю данные между react приложением на сервер и возвращаю их обратно, выводом в консоль. Использую для получения переданных данных в php переменную среды $_POST.
Код в React приложении:
fetch('http://localhost/crypto.com/index.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: JSON.stringify({ name: 'Uber' })
})
.then(resp => resp.json())
.then(resp => console.log(resp));
Код в php:
<?php
header('Access-Control-Allow-Origin: *');
echo json_encode($_POST);
?>
Вывод в консоли реакт приложения
Как можно исправить баг?
Ответы (1 шт):
Автор решения: Gin
→ Ссылка
Проблема была в пеправильном формате данных в параметре body.
fetch('http://localhost/crypto.com/index.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'name=Uber' // Corrected body format
})
.then(resp => resp.json())
.then(resp => console.log(resp))
.catch(error => console.error('Error:', error));
body принимает строкуи если мы используем метод
JSON.stringify({name: 'Uber'})
то ожидаемо получим строку
Но, если мы передадим правильный формат в body, то php код:
<?php
header('Access-Control-Allow-Origin: *');
echo json_encode($_POST['name']);
?>
отработает корректно и выведет:
Объяснил криво косо, но надеюсь понятно.