405 Method Not Allowed

Diese URL unterstützt diese HTTP-Methode nicht.

Wann du ihn verwendest

Ein POST an einen schreibgeschützten Endpunkt. Gib einen Allow-Header mit.

Häufige Ursachen und Lösungen

Typische Ursachen: ein POST an eine Route, die nur für GET definiert ist, eine Framework-Route ohne PUT- oder DELETE-Handler, ein Formular, das an eine statische Datei sendet (nginx antwortet auf POST an statische Inhalte mit 405), oder eine Trailing-Slash-Weiterleitung, die aus einem POST ein GET gemacht hat. Die Antwort sollte einen Allow-Header mit den unterstützten Methoden enthalten; prüfe ihn mit curl -i -X OPTIONS gegen die URL.

Ein CORS-Preflight, der auf eine Route ohne OPTIONS-Handler trifft, bekommt 405, und der Browser meldet das stattdessen als CORS-Fehler. Füge CORS-Middleware hinzu, die OPTIONS vor dem Routing beantwortet. Statische Hosts wie S3-Website-Endpunkte und GitHub Pages akzeptieren überhaupt kein POST, Formulare brauchen dort also ein separates Backend. Nimm 501, wenn der Server die Methode nirgends kennt.

Client-Fehler (4xx)

4xx-Codes sind Client-Fehler: Die Anfrage selbst ist fehlerhaft, nicht autorisiert oder verweist auf etwas, das es nicht gibt. Dieselbe Anfrage erneut zu senden hilft nicht.

So sieht es aus

HTTP/1.1 405 Method Not Allowed

So sendest du ihn

Node.js / Expressres.status(405).end()
Python / Flaskreturn '', 405
nginxreturn 405;

So prüfst du ihn

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP-Statuscodes öffnen