Mothersprogrammer
@Mothersprogrammer

Почему при отправке данных с помощью fetch, они не приходят в PHP?

Я отправляю строку, на сервер с помощью fetch методом POST, но на сервере(PHP) в глобальном массиве _POST ничего нет, и как итог в ответ приходит пустой массив(код из PHP: print_r($_REQUEST);).
let fetchStr = await fetch(`server.php`, {
        method: "POST",
        headers:{
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({str: content})//пробовал и просто строку, разумеется меняя headers, и как сейчас, json, ничего не работает.
      })

Подскажите, пожалуйста, что тут не так и как можно исправить?
  • Вопрос задан
  • 1123 просмотра
Решения вопроса 2
@Vitsliputsli
Документация:

$_POST — Переменные HTTP POST
Ассоциативный массив данных, переданных скрипту через HTTP методом POST при использовании application/x-www-form-urlencoded или multipart/form-data в заголовке Content-Type запроса HTTP.

А у вас application/json, соответственно просто берите входные нераспарсенные данные.
Ответ написан
@kur4chyt
Качественный говнокод от производителя
вы посылаете application/json
если вы хотите получать данные application/json то на сервере обрабатывайте так:

$data = json_decode(file_get_contents("php://input"),true)

$str = $data['str']
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы