HTTP 405 Method Not Allowed

Richtige Adresse, falsches Verb: Die Ressource existiert, akzeptiert aber diese HTTP-Methode nicht.

Was HTTP 405 bedeutet

HTTP 405 Method Not Allowed bedeutet, dass der Server die URL erkennt, die HTTP-Methode — GET, POST, PUT, DELETE — dafür aber nicht unterstützt wird. Die Antwort muss einen Allow-Header enthalten, der die unterstützten Methoden auflistet.

Es ist fast immer eine Diskrepanz zwischen Client und API: ein Formular, das per POST an eine Seiten-Route sendet, ein Skript, das PUT sendet, wo die API PATCH erwartet, oder ein Webhook, der mit der falschen Methode konfiguriert ist.

Häufige Ursachen von 405-Fehlern

  • POST an einen Endpunkt gesendet, der nur GET verarbeitet (oder umgekehrt) — typisch nach dem Kopieren von API-Beispielen.
  • Eine Weiterleitung (301/302) hat einen POST in ein GET umgewandelt, bevor der Request den Endpunkt erreichte.
  • Der Webserver blockiert Methoden wie PUT/DELETE global, während die Anwendung sie erwartet.
  • Eine falsche Route: Der eigentliche Endpunkt ist /api/items (POST), aber der Request traf /items.

So behebst du es als Entwickler

  • Lies den Allow-Response-Header — er listet genau auf, welche Methoden die URL akzeptiert.
  • Prüfe die API-Dokumentation auf das korrekte Methode-Pfad-Paar.
  • Liegt eine Weiterleitung im Pfad, nutze 307/308, damit die Methode den Sprung übersteht.
  • Stelle serverseitig sicher, dass die Framework-Route die Methode deklariert und kein Proxy sie entfernt.

Beispielantwort

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD
Content-Type: application/json

{"error":"method_not_allowed"}

FAQ

Wie sehe ich, welche Methoden eine URL unterstützt?

Prüfe den Allow-Header in der 405-Antwort, oder sende einen OPTIONS-Request an die URL.

Warum wurde aus meinem POST ein GET?

Eine dazwischenliegende 301- oder 302-Weiterleitung ließ den Client die Methode wechseln. Nutze 307/308-Weiterleitungen für Endpunkte, die POST akzeptieren.

Ist 405 ein Client- oder Server-Problem?

Formal ein Client-Fehler, aber oft deckt er eine Server-Fehlkonfiguration auf — eine Route ohne passende Methode oder ein Proxy, der Verben blockiert.