Ten URL nie obsługuje tej metody HTTP.
Kiedy go używać
POST do endpointu tylko do odczytu. Dołącz nagłówek Allow.
Typowe przyczyny i rozwiązania
Typowe przyczyny: POST na trasę zdefiniowaną tylko dla GET, trasa we frameworku bez obsługi PUT lub DELETE, formularz wysyłany na plik statyczny (nginx odpowiada 405 na POST do treści statycznych) albo przekierowanie dodające końcowy ukośnik, które zamieniło POST na GET. Odpowiedź powinna zawierać nagłówek Allow z listą obsługiwanych metod; sprawdź go przez curl -i -X OPTIONS na danym URL-u.
Preflight CORS, który trafia na trasę bez obsługi OPTIONS, dostaje 405, a przeglądarka zgłasza to jako błąd CORS. Dodaj middleware CORS, które odpowiada na OPTIONS przed routingiem. Hostingi statyczne, takie jak endpointy stron S3 czy GitHub Pages, w ogóle nie przyjmują POST, więc formularze wymagają tam osobnego backendu. Użyj 501, gdy serwer nigdzie nie rozpoznaje danej metody.
Błąd klienta (4xx)
Kody 4xx to błędy klienta: samo żądanie jest błędne, nieautoryzowane albo wskazuje na coś, czego nie ma. Ponowienie tego samego żądania nic nie da.
Jak to wygląda
HTTP/1.1 405 Method Not AllowedJak go wysłać
| Node.js / Express | res.status(405).end() |
|---|---|
| Python / Flask | return '', 405 |
| nginx | return 405; |
Jak go sprawdzić
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/