405 Method Not Allowed

Esta URL no admite ese método HTTP.

Cuándo usarlo

Un POST a un endpoint de solo lectura. Incluye una cabecera Allow.

Causas habituales y soluciones

Causas típicas: un POST a una ruta definida solo para GET, una ruta del framework a la que le falta su manejador PUT o DELETE, un formulario que envía a un archivo estático (nginx responde 405 a un POST sobre contenido estático) o una redirección por la barra final que convirtió un POST en un GET. La respuesta debería incluir una cabecera Allow con los métodos admitidos; compruébala con curl -i -X OPTIONS contra la URL.

Un preflight CORS que llega a una ruta sin manejador de OPTIONS recibe un 405, y el navegador lo notifica como un error de CORS. Añade un middleware CORS que responda a OPTIONS antes del enrutamiento. Los hosts estáticos, como los endpoints de sitio web de S3 y GitHub Pages, no aceptan POST en absoluto, así que los formularios allí necesitan un backend aparte. Usa 501 cuando el servidor no reconoce el método en ningún sitio.

Error del cliente (4xx)

Los códigos 4xx son errores del cliente: la solicitud en sí es incorrecta, no está autorizada o apunta a algo que no existe. Repetir la misma solicitud no servirá de nada.

Cómo se ve

HTTP/1.1 405 Method Not Allowed

Cómo enviarlo

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

Cómo comprobarlo

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

Abrir Códigos de estado HTTP