405 Method Not Allowed

Cette URL ne prend pas en charge cette méthode HTTP.

Quand l’utiliser

Un POST vers un point de terminaison en lecture seule. Incluez un en-tête Allow.

Causes courantes et solutions

Causes typiques : un POST vers une route définie uniquement pour GET, une route de framework sans gestionnaire PUT ou DELETE, un formulaire qui poste vers un fichier statique (nginx répond 405 aux POST sur du contenu statique), ou une redirection de slash final qui a transformé un POST en GET. La réponse doit inclure un en-tête Allow listant les méthodes prises en charge ; vérifiez-le avec curl -i -X OPTIONS sur l’URL.

Une requête preflight CORS qui atteint une route sans gestionnaire OPTIONS reçoit un 405, que le navigateur signale à la place comme une erreur CORS. Ajoutez un middleware CORS qui répond à OPTIONS avant le routage. Les hébergeurs statiques comme les points de terminaison de site web S3 et GitHub Pages n’acceptent pas du tout POST, donc les formulaires y ont besoin d’un backend séparé. Utilisez 501 quand le serveur ne reconnaît la méthode nulle part.

Erreur client (4xx)

Les codes 4xx sont des erreurs client : la requête elle-même est incorrecte, non autorisée ou vise quelque chose qui n’existe pas. Renvoyer la même requête ne servira à rien.

À quoi ça ressemble

HTTP/1.1 405 Method Not Allowed

Comment l’envoyer

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

Comment le vérifier

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

Ouvrir l’outil Codes de statut HTTP