HTTP 405 Method Not Allowed: Rutas, métodos y CORS

HTTP 405 Method Not Allowed explicado

Scrapeless Web Unlocker recupera contenido de páginas públicas para flujos de datos que deben distinguir errores de método HTTP de respuestas válidas.

HTTP 405 Method Not Allowed significa que el servidor reconoce el método de la petición pero no lo permite para el recurso de destino. La URL y el método forman un par: una ruta que acepta la lectura de una página puede rechazar el envío o la actualización de un formulario. Comienza con la petición exacta que recibió la respuesta, no con el método que esperabas que el cliente enviara.

Resumen

  • Un 405 tiene que ver con el método permitido para un recurso. No significa que todas las rutas del servidor rechacen ese método.
  • La cabecera Allow es obligatoria en una respuesta 405. Describe los métodos actualmente admitidos por el recurso de destino.
  • El preflight del navegador puede fallar antes de que se envíe la operación prevista. Comprueba si el error lo recibió OPTIONS o la petición de la aplicación.
  • Cambiar una operación de escritura a GET puede alterar el significado de la operación. Corrige el contrato de la API y el enrutamiento en lugar de intercambiar métodos a ciegas.

Qué significa HTTP 405 en el límite del recurso

HTTP 405 identifica un desajuste entre un método reconocido y los métodos admitidos por el recurso de destino. La especificación de semántica HTTP exige una cabecera Allow en la respuesta que liste los métodos actualmente admitidos por el recurso. Esa cabecera es evidencia de diagnóstico, aunque la implementación observada pueda estar incompleta o mal configurada.

El límite del recurso importa. Un servicio puede aceptar POST en una ruta y devolver 405 para POST en otra. La barra de direcciones del navegador normalmente realiza una navegación de página, mientras que un cliente de aplicación puede enviar un método diferente con un cuerpo. Alcanzar el mismo hostname no establece que esas peticiones ejerzan el mismo contrato.

Mantén 405 separado de un método no reconocido o no implementado a nivel de servidor. Distingúelo también de un fallo de autorización y de contenido ausente. El estado acota la investigación a la relación método‑recurso, pero middleware personalizado o un gateway aún pueden generar la respuesta antes de que se ejecute el manejador de la aplicación.

Inspecciona la petición que realmente falló

La petición de red real es el punto de partida para diagnosticar un 405. Registra la URL final, el método de la petición, el estado de la respuesta, la cabecera Allow, el tipo de contenido y la cadena de redirecciones relevante. Tacha el material de autorización y los valores sensibles de las queries antes de compartir el registro.

Compara el método observado con la operación documentada. Un formulario puede enviar a una ruta de página en lugar de a la ruta de la API. Un cliente puede usar una ruta obsoleta después de un cambio de versión de la API. Una redirección por barra final puede enviar la petición por una ruta distinta a la esperada. Estos detalles pueden ser invisibles cuando solo inspeccionas el código fuente que inició la operación.

No deduzcas un enrutamiento correcto a partir de una página de error legible. Un reverse proxy, un host estático, un framework o la aplicación pueden producir HTML que explique un 405. Identifica la capa a través de sus logs y configuración. La apariencia de la respuesta es una pista, pero no establece qué manejador de aplicación, si es que alguno, vio la petición.

Lee Allow sin tratarlo como autorización

Allow describe los métodos admitidos; no concede permiso para ejecutarlos. Un endpoint puede anunciar un método y aun así requerir autenticación, credenciales adecuadas o un cuerpo de petición válido. Corregir un 405 puede exponer un error de validación independiente porque la petición por fin ha llegado al manejador previsto.

Si falta Allow, registra que la respuesta carece de la cabecera requerida en lugar de inventar una lista de métodos. Usa la especificación de la API y la configuración de rutas controlada por el propietario para determinar el contrato previsto. Una respuesta no conforme es una razón para una investigación del lado del servidor, no una razón para probar todos los métodos posibles contra un recurso en producción.

Los nombres de los métodos conllevan semántica. Una lectura, una actualización y una eliminación son operaciones diferentes, incluso si la ruta acepta más de una. Enviar una operación que cambia estado como GET para evitar un 405 puede crear un comportamiento inseguro de caché y navegación. Elige la operación documentada y repara el componente que la rechaza incorrectamente.

Desajustes comunes de rutas y despliegue

La configuración de rutas puede divergir del contrato del cliente durante cambios de despliegue o integración. Un manejador de formularios podría faltar en un despliegue estático, un gateway podría exponer solo métodos seleccionados, o una ruta de API versionada podría diferir de la ruta de la página pública. Haz coincidir la petición que falla con la tabla de enrutamiento realmente desplegada.

SituaciónEvidencia para compararResponsable probable
Form POST llega a una ruta solo de páginaAcción y método del formulario, y ruta del servidorEquipos de front‑end y de aplicación
Método de API ausente en la configuración del gatewayRuta del gateway y contrato del backendEquipo de plataforma de API
OPTIONS falla antes del método de la aplicaciónSecuencia de red del navegador y política CORSEquipo de gateway o de aplicación
Solo el entorno desplegado devuelve 405Salida de build, registro de rutas y configuración del hostEquipo de despliegue
La redirección cambia el destinoCada respuesta de redirección y la petición finalEquipo de enrutamiento o de aplicación

Compara los entornos con precisión. Un servidor de desarrollo puede implementar un manejador de API que el host de producción nunca desplegó. Una prueba local exitosa, por tanto, solo verifica esa ruta local. Comprueba el artefacto desplegado y las reglas de enrutamiento públicas antes de cambiar el cliente.

La pre-solicitud CORS y el 405 están relacionados pero son distintos

Un navegador puede enviar una pre-solicitud CORS antes de la operación de origen cruzado prevista. El protocolo CORS del estándar Fetch define este comportamiento del navegador. Si la pre-solicitud recibe un 405, es posible que la solicitud de la aplicación nunca se envíe, aunque la consola del navegador describa el fallo general como un problema de CORS.

Inspecciona el método de la fila con fallo en el panel de red. Si es OPTIONS, revisa el controlador de la pre-solicitud y la política de origen, método y encabezados permitidos. Si es el POST real u otro método de la aplicación, investiga la ruta de la operación por separado. No supongas que añadir un encabezado de respuesta a cualquier página de error soluciona ambos casos.

Los encabezados Allow y Access-Control-Allow-Methods cumplen propósitos diferentes. El primero comunica la compatibilidad de métodos del recurso; el segundo participa en la decisión de permisos de origen cruzado del navegador. Un servidor puede admitir un método y aun así rechazar una solicitud específica de navegador de origen cruzado. A la inversa, unos encabezados CORS permisivos no crean una ruta de aplicación que no exista.

Las redirecciones pueden ocultar el problema original del método

Las redirecciones pueden cambiar el destino y, según el estado y el comportamiento del cliente, afectar cómo continúa la solicitud. Inspecciona cada salto en lugar de tratar la URL final como si el cliente se hubiera dirigido a ella directamente. El método que se conserva o selecciona después de una redirección importa cuando el recurso de destino tiene un contrato de métodos diferente.

Un flujo de formulario ilustrativo podría enviar a una ruta antigua que redirige a una página de destino. La página de destino puede ser una página válida pero un extremo inválido para el formulario. Cambiar la política de métodos de la página de destino resolvería el problema equivocado si el controlador previsto vive en otro lugar. Repara la acción del formulario o la regla de migración que envió allí la solicitud.

Prueba las redirecciones con una operación inocua en un entorno autorizado. No reproceses un pago, borrado u otra escritura solo para obtener un rastro de diagnóstico más limpio. Determina si la operación original pudo haber producido un efecto secundario y utiliza el registro de la aplicación sobre esa operación antes de iniciar cualquier nuevo cambio de estado.

El almacenamiento en caché puede preservar un 405 anterior

Una caché puede retener ciertas respuestas según las reglas de HTTP, de modo que es posible que una ruta corregida no se refleje inmediatamente en todas las respuestas observadas. La semántica de caché HTTP explica el comportamiento de frescura y validación. Inspecciona los metadatos de respuesta relacionados con la caché y la política de caché activa cuando el 405 observado parezca inconsistente con el controlador desplegado.

Determina si la respuesta provino de una caché o de la aplicación actual antes de volver a cambiar el enrutamiento. Una corrección de configuración en el origen y una decisión de invalidar la caché son operaciones separadas. Conserva evidencia de la respuesta original y de la respuesta actual prevista para que el registro del incidente muestre qué capa fue responsable.

Evita eliminar ampliamente la caché sin una razón. Una investigación enfocada puede comparar la ruta afectada, el método y la clave de caché con una respuesta actual conocida. La corrección debe coincidir con el alcance del resultado obsoleto en lugar de perturbar contenido del sitio no relacionado.

Manejo de 405 en la recopilación de páginas públicas

Un recolector debería preservar el 405 como un error de método y mantener el cuerpo de error devuelto fuera de su conjunto de datos objetivo. Registra si el error provino de la llamada API del servicio de recopilación o del recurso de destino. Son contratos distintos, y reparar uno no necesariamente afecta al otro.

Web Unlocker recupera contenido a través de su interfaz de servicio documentada. Sigue el contrato de Web Unlocker para las solicitudes admitidas en lugar de suponer que un método arbitrario reenviado hacia un destino está disponible. La distinción conceptual entre método del servicio y método del destino es útil incluso cuando la aplicación nunca expone ambos directamente.

La discusión sobre extracción de contenido en Next.js aporta contexto relacionado sobre cómo elegir la superficie de contenido correcta. Una página renderizada, una respuesta de datos de aplicación y una operación de API no son intercambiables solo porque se refieran a la misma página. Revisa los precios actuales de Scrapeless después de establecer la ruta de recopilación correcta, de modo que las estimaciones de carga reflejen solicitudes útiles.

Confirma el contrato después de la reparación

Una reparación completada demuestra el método previsto en el recurso desplegado previsto. Confirma el estado de la respuesta, los datos requeridos y el efecto secundario esperado, si lo hubiera. Confirma también que los métodos no admitidos siguen controlados y que el cambio no amplió accidentalmente el acceso a rutas no relacionadas.

Actualiza el contrato del cliente o la documentación de la ruta cuando el incidente revele una discrepancia. Incluye una comprobación mínima de regresión en el límite método-recurso donde ocurrió el problema. Esto es más útil que una prueba que solo confirme que la página de inicio sigue siendo accesible, porque la página de inicio puede no haber ejercido nunca el método con fallo.

Conclusión

HTTP 405 es un problema de enrutamiento y de contrato de método hasta que la evidencia muestre lo contrario. Captura el método real, inspecciona Allow y separa la pre-solicitud de la operación de la aplicación. Repara el contrato desplegado y verifica su comportamiento previsto sin debilitar la autenticación ni cambiar una escritura por una lectura.

Elige el contrato correcto de recuperación de contenido

Utiliza Web Unlocker para la recuperación admitida de páginas públicas y conserva los errores de método como resultados explícitos de recopilación.

Regístrate hoy y obtén $5 en crédito gratis — no se requiere tarjeta de crédito.

Reclama tu crédito de $5 →

Preguntas frecuentes

P: ¿405 significa que la URL no existe?

Un 405 significa que el método no está permitido para el recurso de destino. Es diferente de una respuesta de recurso inexistente. Verifica juntos la ruta exacta y el método, porque una ruta de página legible puede no aceptar la operación API solicitada.

P: ¿Qué pasa si falta el encabezado Allow?

La ausencia de un encabezado Allow hace que la respuesta 405 esté incompleta según la semántica de HTTP. Registra la omisión e inspecciona el contrato de la API o la configuración de las rutas. No adivines qué métodos están soportados solo a partir del estado.

P: ¿Un 405 es siempre un error de CORS?

Un 405 no es siempre un error de CORS. Una pre-solicitud CORS puede recibir 405, pero una solicitud de mismo origen o un cliente que no sea navegador también puede recibirlo. Inspecciona si falló OPTIONS o el método de aplicación previsto.

P: ¿Puede un proxy corregir una falta de coincidencia de método?

Cambiar un proxy no repara un contrato ruta-método incorrecto. Un proxy puede ser en sí mismo el componente que rechaza el método, así que inspecciona su configuración cuando la evidencia apunte allí. El enrutamiento de red y la semántica de la API siguen siendo preocupaciones separadas.

P: ¿Por qué GET funciona pero POST falla?

GET puede funcionar mientras POST falla porque el recurso admite lectura pero no tiene un manejador de envío permitido. Confirma si POST corresponde a otro endpoint documentado y si ese manejador fue desplegado.

Referencias