Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

599
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!