@Nentra

Почему в одном случает получение данных пост работает, а в другом не работает?

Если пытаюсь получить данные вот так
$data = file_get_contents('php://input'); //Получаем тело в виде json
    header('Content-Type: application/json');
    $data = json_decode($data, true); //Раскодируем json файл


то в $data ничего не приходит

если просто пишу вот так
$data=$_POST;
то данные в $data есть.

Причём неделю назад первый способ получения данных тоже работал.

1. В чём причина такого поведения?
2. Какой способ получения POST данных правильный?
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. В том, что PHP автоматически разбирает в $_POST только запросы с Content-Type: application/x-www-form-urlencoded или Content-Type: multipart/form-data. Запросы с другими типами содержимого надо получать самостоятельно через php://input. Пытаться изменить пришедшие данные установкой Content-Type бесполезно, тем более, что функция header добавляет заголовок ответа и не меняет ничего в запросе.
2. Какой нужен, такой и правильный.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы