Почему программное обеспечение моего веб-сервера запрещает запросы PUT и DELETE? - PullRequest
16 голосов
/ 10 сентября 2009

Я пытаюсь реализовать протокол REST и, пытаясь отладить, понял, что мой веб-сервер отклоняет запрос PUT.

Я проверил и подтвердил это, выполнив:

curl -X PUT  http://www.mywebserver.com/testpage

Который для моего веб-сервера возвращает 403 - Запрещенная ошибка .

То же самое происходит для DELETE, где, как и для POST и GET, все в порядке.

Мне интересно, является ли это распространенной проблемой, с которой сталкиваются те, кто использует REST, и какой может быть альтернатива?

Могу ли я сделать простое изменение в файле .htaccess? Или мне нужно изменить протокол, чтобы установить скрытую переменную "_method" в строке запроса POST?

1 Ответ

56 голосов
/ 10 сентября 2009

Часто веб-серверы будут настроены на блокировку всего, кроме GET и POST, поскольку 99% времени - это все, что нужно, и в в прошлом с приложениями предполагая, что запросы были одним из этих двух.

Вы не говорите, какой это сервер, но, например, вы можете сказать, какой Apache методы, разрешающие директиву:

например:

<Limit POST PUT DELETE>
  Require valid-user
</Limit>

Похоже, что какой-то полезный сисадмин использовал это для блокировки не GET / POST

Вы можете попробовать .htaccess с

<Limit GET POST PUT DELETE>
  Allow from all
</Limit>

(я не специалист по apache, это может быть не совсем правильно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...