Ошибка 405: почему форма на сайте не отправляется
Ошибка 405 (Method Not Allowed) — адрес на сервере существует, но обращаться к нему таким способом нельзя. Страницу можно открыть, а отправить на неё данные — нет.
Для бизнеса это чаще всего означает одно: на сайте не отправляется форма заявки. Сайт при этом выглядит рабочим, посетитель жмёт «отправить» и получает ошибку — а вы не получаете обращение и не знаете об этом.
Что такое «метод» и почему он не подошёл
Браузер обращается к серверу одним из нескольких способов:
| Метод | Когда используется |
|---|---|
| GET | открыть страницу, получить данные |
| POST | отправить форму, передать данные на сервер |
| PUT / PATCH | обновить данные через API |
| DELETE | удалить |
| HEAD | получить только заголовки, без содержимого |
405 возникает, когда адрес умеет отвечать на GET, а к нему пришли с POST. Классический случай: форма настроена отправлять данные на обычную страницу вместо обработчика.
Чем отличается от соседних ошибок
- 404 — адреса не существует вовсе.
- 403 — адрес есть, метод допустим, но у вас нет прав.
- 405 — адрес есть, права есть, но именно такой способ обращения запрещён.
- 429 — всё разрешено, но исчерпан лимит запросов.
Пять типовых причин
- Форма отправляет данные не туда. В атрибуте action указана обычная страница, а не адрес обработчика. Самая частая причина после переезда сайта или смены шаблона.
- Сервер запрещает POST для статики. Настройка nginx или Apache отдаёт 405 при попытке отправить данные на HTML-файл.
- Редирект съел метод. Форма отправляется на адрес без слэша, сервер редиректит на адрес со слэшем, и POST по дороге превращается в GET. Проявляется странно: то работает, то нет.
- Обработчик удалён или переименован. Обновили CMS или тему — файл переехал, а форма про это не знает.
- Ограничения на API. Метод не поддерживается конкретной точкой входа: пытаетесь обновить через POST то, что принимает только PUT.
Порядок диагностики
Ищется за десять минут, если идти по шагам:
- Открыть консоль браузера на вкладке «Сеть» и отправить форму. Видно точный адрес, метод и код ответа.
- Сравнить адрес из формы с адресом обработчика. В девяти случаях из десяти расхождение находится здесь.
- Проверить редиректы. Если между формой и обработчиком есть 301 — это причина.
- Посмотреть логи сервера. Там видно, дошёл ли запрос вообще и какой модуль его отклонил.
- Проверить на разных страницах. Если ломается только одна форма, дело в ней; если все — в настройках сервера.
🔴 Чем это опасно для бизнеса
405 на форме — тихая потеря заявок. Особенности, из-за которых её замечают поздно:
- Сайт работает. Страницы открываются, реклама крутится, деньги тратятся.
- Метрика показывает трафик. Визиты идут, отказы в норме — по отчётам всё хорошо.
- Цель не срабатывает, но если конверсия и так была невысокой, падение списывают на сезон или качество трафика.
- Никто не жалуется. Человек, у которого не отправилась форма, уходит к конкуренту, а не пишет вам.
Отсюда практическое правило: отправляйте тестовую заявку через каждую форму на сайте раз в неделю и обязательно после любого обновления. Ещё надёжнее — настроить мониторинг, который делает это сам и предупреждает, если заявок нет дольше обычного.
Разбор всей цепочки потери обращений — в материале про слив рекламного бюджета.
Когда 405 — правильное поведение
Защита от спама. Запрет POST на страницы, которые не должны принимать данные, отсекает часть автоматических атак.
Строгий API. Явный отказ на неподдерживаемый метод лучше, чем молчаливое игнорирование: разработчик сразу видит ошибку.
Статические сайты. Если сайт не принимает данные в принципе, 405 на POST — корректный ответ.
Коротко
- 405 — адрес существует, но не принимает такой тип обращения.
- Для бизнеса это почти всегда неотправляющаяся форма заявки.
- Отличие от 404 — там адреса нет; от 403 — там нет прав.
- Главная причина: форма отправляет данные не на обработчик, а на обычную страницу.
- Коварная причина: редирект между формой и обработчиком превращает POST в GET.
- Опасность в тишине: трафик идёт, деньги тратятся, заявок нет, никто не жалуется.
Следим за техническим состоянием сайта и ловим такие поломки до того, как они съедят бюджет, — техническое обслуживание.
