Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

600
Vistas
¿Cómo manejo (¡no soluciono!) una excepción CORS en Ionic Framework?

Tenemos una aplicación Angular/Ionic instalada en iPhone y Android. La aplicación llama a una API en nuestro servidor web IIS. Cuando el servidor está activo, todo funciona bien.

Sin embargo, mientras implementamos una nueva versión del sitio web de la API, nos gustaría que nuestra aplicación muestre una página de mantenimiento. Actualmente, durante la implementación, creamos un archivo app_offline.htm en la carpeta raíz del sitio de la API, que es la forma habitual de desconectar un sitio web y mostrar una página de mantenimiento en IIS.

Desafortunadamente, esto significa que la solicitud de verificación previa de CORS de nuestra aplicación Ionic también devuelve un código de error 503 http; Supongo que IIS elimina todo el sitio. No podemos manejar este error 503 en la aplicación Angular/Ionic en el teléfono, ya que el navegador activa la solicitud de verificación previa. Agregamos encabezados personalizados a cada solicitud, que no se pueden evitar. El resultado neto es que la página de mantenimiento no se muestra cuando el sitio de la API está inactivo.

¿Hay alguna manera de mostrar una página de mantenimiento en nuestra aplicación Ionic/Angular mientras se implementa el sitio API? ¿Quizás configurando IIS para permitir solicitudes de verificación previa incluso cuando app_offline.htm está en su lugar, manejando de alguna manera el 503 en el lado Ionic, o incluso deteniendo la solicitud de OPCIONES de verificación previa de la aplicación Ionic?

NOTA: NO estoy preguntando cómo configurar mi sitio para resolver un problema de CORS, esa parte ya está en su lugar. Quiero manejar un error de CORS esperado cuando ocurre en la aplicación mientras se implementa el sitio de la API de soporte.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Por razones de seguridad, los detalles sobre lo que salió mal con una solicitud de CORS no están disponibles para el código JavaScript. Todo lo que el código sabe es que ocurrió un error. La única forma de determinar qué salió mal específicamente es mirar la consola del navegador para obtener más detalles.

Puede obtener más información aquí en developer.mozilla.org

Mi sugerencia es manejar cualquier error de solicitud como cualquier otro, dentro de un interceptor.

Luego puede hacer uso de las propiedades en el objeto de error (como un estado de 0) para decidir si debe verificar si está en modo de mantenimiento, o simplemente puede verificar el modo siempre que tenga algún error.

Para hacer esto, puede verificar si la página app_offline.htm está actualmente activa o no con una solicitud web, o puede utilizar una API separada para determinar si actualmente está en modo de mantenimiento o no.

Luego tome las acciones apropiadas basadas en esa respuesta.

over 4 years ago · Santiago Trujillo Denunciar

0

tal vez discutir entre ustedes sobre el enfoque de 2 sitios/api. API adicional para manejar todas las solicitudes (responde con los encabezados necesarios y tal vez un mensaje/estado de mantenimiento para que la aplicación los maneje) cuando se actualiza la API real.

El siguiente es un artículo sobre cómo favorecer el método de 2 sitios. aunque el host ofrece contenido estático y no una API, se puede seguir un patrón similar

https://www.vegait.rs/media-center/blog/offline-maintenance-mode-in-iis

over 4 years ago · Santiago Trujillo Denunciar

0

"No podemos manejar este error 503 en la aplicación Angular/Ionic en el teléfono, ya que el navegador activa la solicitud de verificación previa". ¿Cómo no puedes manejar los errores?

Todas las solicitudes http.get tienen rutinas de prueba/captura que puede usar. Si no se reciben datos del servidor, retroceda/navegue a otra página, mostrando que el servidor API está inactivo por mantenimiento.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda