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 AllowedSo sendest du ihn
| Node.js / Express | res.status(405).end() |
|---|---|
| Python / Flask | return '', 405 |
| nginx | return 405; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/