Несколько возможных причин, по которым параметры POST-запроса могут не передаваться:
- Большой объём передаваемых данных. 2 В этом случае может помочь изменение настройки maxinputvars, которая определяет, сколько входных переменных может быть принято в одном запросе. 2
- Некорректный заголовок Content-Type. 3 Протокол HTTP работает по схеме запрос-ответ. 3 Клиент сообщает тип содержимого своего запроса, а сервер — тип своего ответа. 3 Главное, чтобы тип соответствовал содержимому. 3 Например, если при отправке формы Content-Type указан как json, сервер будет относиться к запросу как к json-у и считать, что параметр формы не указан. 3
- Некорректная настройка nginx. 4 Нужно проверить, что в логах nginx нет редиректа (301 или 302). 4 Если на POST-запрос nginx возвращает редирект, клиент думает, что своё дело сделал, и к новому адресу выполняет уже обычный GET, без параметров. 4
Для точной диагностики и решения проблемы рекомендуется обратиться к специалисту.