Planeta Red
  • Inicio
  • Dispositivos
  • Noticias
  • Reviews
  • Manuales
  • Aplicaciones
Sin resultados
Ver todos los resultados
Planeta Red
Sin resultados
Ver todos los resultados
Planeta Red
Inicio Manuales

Solucionando los problemas de CORS en Ionic 3

Por Carlos Jiménez Delgado
31/08/2017
en Manuales
0
Ionic 3
Compartir en FacebookCompartir en Twitter

Si estáis desarrollando aplicaciones utilizando el framework de Ionic para el desarrollo de aplicaciones híbridas para móviles es bastante probable que os hayáis tenido que enfrentar a los avisos del inspector de Chrome de que una petición a un determinado servicio no se ha podido realizar debido a que se incumplían ciertas políticas de seguridad. Son los conocidos como problemas control de acceso HTTP o por sus siglas CORS.

CORS

Estos problemas surgen cuando desde un determinado servidor se intenta acceder a recursos alojados en otro servidor. En estos casos la solución es sencilla.

Evitar los problemas de CORS usando extensiones

La primera de las opciones es la de usar una extensión o plugin que modifique las cabeceras de todas las peticiones que realice el servidor para añadirle una determinadas directivas. En este caso se trata de añadir:

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin:

Estas directivas se podrían añadir a la información enviada por nuestro header. Si tenemos un header común tan sólo tendríamos que añadirlas para evitar este problema. Aunque la solución más sencilla en este caso es utilizar una extensión que realiza este trabajo de manera automática y transparente.

Una de las extensiones que podéis utilizar es Moesif Origin & CORS Changer. Pero hay muchas más como CORS Toggle o CORS Enabler.

Todas estas opciones habilitarán un botón que podemos colocar al lado de la barra de direcciones y que podremos habilitar/deshabilitar para permitir saltarnos los problemas causados por CORS.

Evitar los problemas de CORS usando un proxy

Aunque la opción de poner una extensión es bastante sencilla en algunos casos es probable que no sea posible usarla. Bien sea porque el ordenador no es nuestro o por cualquier otro motivo.

En estos casos lo más sencillo es que creemos un proxy que encapsulará estas peticiones. En este caso el servidor mapeara estos recursos externos como si fueran locales, por lo que el problema de CORS desaparecerá.

Este proxy se puede implementar en varios sitios. En el caso de Ionic nuestro servidor local (localhost) donde se realizan pruebas se levanta con el comando:

ionic serve

Esto levantará nuestra web/app móvil en http://localhost:8100/

Pues bien, este servidor se puede configurar gracias al fichero ionic.config.json y que podremos encontrar en la raiz de nuestros proyectos realizados con Ionic.

El contenido del mismo será similar a esto:

{
«name»: «[Nombre proyecto Ionic]»,
«app_id»: «»,
«type»: «ionic-angular»,
«integrations»: {
«cordova»: {}
}
}

Tan sólo tendremos que añadir al mismo la configuración del proxy:

{
«name»: «[Nombre proyecto Ionic]»,
«app_id»: «»,
«type»: «ionic-angular»,
«integrations»: {
«cordova»: {}
},
«proxies»: [{
«path»: «/api-rest»,
«proxyUrl»: «[URL acceso recurso externo]»
}]
}

Haciendo esto tendremos que cambiar todas las llamadas que realicemos a la api-rest modificando el path o ruta de acceso para que apunte a «http://localhost:8100/api-rest»

La opción más cómoda para hacer esto es tener una clase Api que se encargue de realizar las llamadas al servicio rest y que modificaremos convenientemente para servir una url u otra en función del entorno en el que nos encontremos.

Una aproximación a lo que os decimos es:

urlApiRestLocal: string = ‘http://localhost:8100/api’;
urlApiRest: string = ‘…….’;

constructor(public http: Http) {
}

getURL(url: string) {
if ( window.location.hostname === «localhost» ) {
return this.urlApiRestLocal;
} else {
return this.urlApiRest;
}
}

Esto nos permitiría tener varias url para atacar los servicios API Rest en diferentes entornos (local, desarrollo, preproducción, producción), pero como suele decirse eso será el trabajo para mi yo del futuro.

Espero haberos podido ayudar.

Saludos desde lo más profundo de los bytes.

Etiquetas: CORSdesarrollo de appsIonicIonic 3JSprogramacionprogramación híbrida
Artículo anterios

Huawei Nova Lite 2017, buenas especificaciones y metal para un precio demasiado alto

Siguiente artículo

¿Que puede hacer un smartphone con una batería de 7000mAh?

Carlos Jiménez Delgado

Además de administrador del blog, soy Técnico Superior en Informática de Gestión de Empresas e Ingeniero Técnico en Informática de Sistemas. Actualmente trabajo como Analista Programador para una Consultora Informática y dedico parte de mi tiempo libre al apasionante mundo de las nuevas tecnologías.

Siguiente artículo
DOOGEE BL7000

¿Que puede hacer un smartphone con una batería de 7000mAh?

Razer Wolverine Ultimate

Razer revela sun mando Wolverine Ultimate con un sinfín de personalizaciones

LG V30

El LG V30 ya es oficial; Detalles, detalles, imágenes y precios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

TOPANÁLISIS/REVIEW

Garmin Forerunner 165 Music

Garmin Forerunner 165 Music

El Garmin Forerunner 165 Music es un reloj deportivo con pantalla €314
Razer DeathAdder V4 Pro

Razer DeathAdder V4 Pro

El Razer DeathAdder V4 Pro es una obra maestra de la €178
Acer PD163Q

https://amzn.to/4aVPLIn

El PD163Q es un ejercicio de ingeniería ambicioso. Acer ha logrado €358
Teufel BOOMSTER

Teufel BOOMSTER

El Teufel BOOMSTER es un altavoz 2.1 con subwoofer, radio DAB+
SoundPeats Air5 Pro+

SoundPeats Air5 Pro+

SoundPeats nos presenta unos nuevos auriculares que son todo lo que €72

TE INTERESA

Nuevo Smartphone 4G, pantalla HD INCELL de 6.6 pulgadas, 4 GB de RAM, 32 GB de ROM (ampliable hasta 256 GB), SIM dual Android 12.0, compatible con Bluetooth/Wifi/GPS/OTG/cargador rápido/Face ID teléfono
Smartphone 4G, pantalla HD INCELL de 6.6 pulgadas, 4 GB de RAM, 32 GB de ROM (ampliable hasta 256 GB), SIM dual Android 12.0, compatible con Bluetooth/Wifi/GPS/OTG/cargador rápido/Face ID teléfono
Comprar en Amazon
Nuevo UMIDIGI Note 100 Teléfono móvil, Android 14 Smartphone, 120HZ Octa-Core, 12(6+6) GB+128GB teléfono, 6,8 pulgadas, 50 MP, Face and Fingerprint Unlock, NFC, 5000mAh, GPS, Teléfono Dual SIM
UMIDIGI Note 100 Teléfono móvil, Android 14 Smartphone, 120HZ Octa-Core, 12(6+6) GB+128GB teléfono, 6,8 pulgadas, 50 MP, Face and Fingerprint Unlock, NFC, 5000mAh, GPS, Teléfono Dual SIM
109,99 EUR
Comprar en Amazon
Nuevo UMIDIGI Note 100 - Teléfonos móviles Android 14 (2025), 12 (6+6) GB +128 GB/1 TB, 6.8 pulgadas + 120 Hz, cámara de 50 MP, 4G Dual SIM desbloqueado, teléfonos móviles desbloqueados, 5000 mAh, NFC
UMIDIGI Note 100 - Teléfonos móviles Android 14 (2025), 12 (6+6) GB +128 GB/1 TB, 6.8 pulgadas + 120 Hz, cámara de 50 MP, 4G Dual SIM desbloqueado, teléfonos móviles desbloqueados, 5000 mAh, NFC
145,99 EUR
Comprar en Amazon

Artículos Recientes

Meizu 22 Next AI Cube

Meizu 22 Next AI Cube: El futuro de la IA emocional y 5G

10/01/2026
Realme Neo 8

Realme Neo 8: Snapdragon 8 Gen 5, 8.000 mAh y Pantalla 165Hz

10/01/2026
  • Quienes somos
  • Publicidad
  • Política de Privacidad
  • Aviso Legal
  • Contacto

Sin resultados
Ver todos los resultados
  • Inicio
  • Dispositivos
  • Noticias
  • Reviews
  • Manuales
  • Aplicaciones