Slim Framework и getParsedBody для запроса на удаление - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь получить параметры, передаваемые в теле (из формы) как запрос DELETE к API как

$allVars = $request->getParsedBody();

, но по какой-то причине он будет пустым, когда нормально работает для POST и PUT запросы.

Любые советы по этому поводу?

1 Ответ

1 голос
/ 10 января 2020

В соответствии со спецификацией HTTP тело запроса DELETE должно игнорироваться серверами, поскольку нет "определенной семантики":

Полезная нагрузка в сообщении запроса DELETE. не имеет определенной семантики; отправка тела полезной нагрузки по запросу DELETE может привести к тому, что некоторые существующие реализации отклонят запрос.

Использование тела запроса для запросов HTTP DELETE немного необычно. Многие клиентские библиотеки HTTP не поддерживают его, поэтому он заставляет разработчика создавать запросы с низкого уровня. Другое дело, я полагаю, что некоторые популярные веб-серверы, если они используются в качестве прокси, обрезают тело для запросов DELETE, как они делают для GET по умолчанию, поэтому для них требуется дополнительная настройка.

Я бы поместил их в URL путь или параметры запроса URL, например:

DELETE /resource/1234

Разрешено ли тело объекта для запроса HTTP DELETE?

...