4xx · Errores del cliente
Error 405 Method Not Allowed: qué significa y cómo solucionarlo
El error 405 Method Not Allowed significa que la URL existe pero no acepta el método HTTP utilizado: por ejemplo, un POST a una ruta que solo admite GET. El servidor debe indicar en la cabecera Allow qué métodos sí acepta.
Qué significa el código 405
Es muy común al desarrollar APIs: la ruta está bien escrita pero el método no coincide con el que define el código. También ocurre al enviar un formulario a un fichero estático: nginx no permite POST a ficheros estáticos y responde 405.
Causas habituales del error 405
- Llamar con POST a un endpoint definido solo con GET (o al revés).
- Formulario cuyo action apunta a un HTML estático servido por nginx.
- Una barra final de más que hace que la petición llegue a otra ruta, o una redirección 301/302 que convierte el POST en GET.
- WebDAV o PUT/DELETE desactivados en el servidor.
Cómo solucionar el error 405
- Mira la cabecera Allow de la respuesta para ver qué métodos acepta la URL.
- Comprueba que la ruta y el método del cliente coinciden con los del backend.
- Si una redirección convierte tu POST en GET, apunta directamente a la URL final o usa 307/308.
Configuración y comandos
Ver qué métodos acepta una URL
bash
curl -i -X OPTIONS https://api.ejemplo.com/usuarios
curl -i -X POST https://ejemplo.com/index.html # nginx: 405 Not AllowedEjemplo de respuesta
http
HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD
Content-Type: application/json
{"detail": "Method Not Allowed"}Herramientas para comprobarlo
Preguntas frecuentes
¿Qué diferencia hay entre 405 y 404?
Con 404 la URL no existe. Con 405 la URL existe, pero no acepta el método (GET, POST…) que has usado.