HTTP 405 Method Not Allowed
Верный адрес, неверный метод: ресурс существует, но не принимает этот HTTP-метод.
Что означает HTTP 405
HTTP 405 Method Not Allowed означает, что сервер распознаёт URL, но HTTP-метод — GET, POST, PUT, DELETE — для него не поддерживается. Ответ должен включать заголовок Allow со списком поддерживаемых методов.
Практически всегда это несоответствие между клиентом и API: форма отправляет POST на маршрут страницы, скрипт отправляет PUT там, где API ожидает PATCH, либо вебхук настроен с неверным методом.
Частые причины ошибок 405
- POST отправлен на эндпоинт, который обрабатывает только GET (или наоборот) — типично после копирования примеров из документации API.
- Редирект (301/302) преобразовал POST в GET до того, как запрос достиг эндпоинта.
- Веб-сервер глобально блокирует такие методы, как PUT/DELETE, хотя приложение их ожидает.
- Неверный маршрут: целевой эндпоинт — /api/items (POST), но запрос попал на /items.
Как исправить со стороны разработчика
- Прочитайте заголовок ответа Allow — он перечисляет ровно те методы, которые принимает URL.
- Проверьте документацию API на правильную пару метода и пути.
- Если на пути есть редирект, используйте 307/308, чтобы метод сохранился при переходе.
- На сервере убедитесь, что маршрут фреймворка объявляет нужный метод и ни один прокси его не отбрасывает.
Пример ответа
HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD
Content-Type: application/json
{"error":"method_not_allowed"}Частые вопросы
Как узнать, какие методы поддерживает URL?
Проверьте заголовок Allow в ответе 405 или отправьте запрос OPTIONS на этот URL.
Почему мой POST превратился в GET?
Редирект 301 или 302 по пути позволил клиенту сменить метод. Используйте редиректы 307/308 для эндпоинтов, принимающих POST.
Является ли 405 проблемой клиента или сервера?
Формально это клиентская ошибка, но часто она выявляет неправильную конфигурацию сервера — маршрут без нужного метода или прокси, блокирующий определённые методы.