Не получается передать данные между 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']);
?>

отработает корректно и выведет:

введите сюда описание изображения

Объяснил криво косо, но надеюсь понятно.

→ Ссылка