Saltar al contenido

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 Allowed

Ejemplo 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.

Códigos relacionados

Ver todos los códigos de estado HTTP