CORS y aplicaciones phonegap

¿Las aplicaciones phonegap requieren algún cambio CORS (como configuración de Access-Control-Allow-Origin: *) para que funcione? Tengo una API relajante alojada en Heroku y me preguntaba si necesito configurar este encabezado para que mi aplicación de teléfono llame al servicio.

Estaba pensando que debido a que la aplicación phonegap realmente no está alojada en un dominio, entonces CORS no es necesario y no tendré ningún problema entre dominios.

Sería genial si alguien pudiera explicarme por qué este es o no es el caso.

PhoneGap puede simplemente XHR directamente a servidores remotos y debería “simplemente funcionar”. La política de dominios cruzados no se aplica a PhoneGap (por diversas razones, básicamente porque tu aplicación se está ejecutando esencialmente en el archivo: // URI en el dispositivo).

Tenga en cuenta que deberá configurar una lista blanca para que sus aplicaciones accedan a estos dominios externos. Por favor revisa este enlace:

http://docs.phonegap.com/en/1.8.0rc1/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide

Ninguna de las plataformas predeterminadas de Cordova (PhoneGap) requiere CORS, a pesar del hecho de que los archivos HTML se alojan localmente ( file:// ) y están accediendo a un dominio web.

Sin embargo, en iOS, si cambia de UIWebView a UIWebView más WKWebView través de cordova-plugin-wkwebview-engine , de hecho tendrá que implementar CORS.

Sí, debe activar CORS en el servidor que aloja su API. Estoy ejecutando una aplicación Phonegap en iOs. Mi aplicación solicita json desde una API de servidor en Apache. Activo CORS en el servidor para obtener los datos; de lo contrario, no obtengo nada en mi aplicación, ningún error ni datos.

Tenga en cuenta que el parámetro de acceso en el archivo de configuración le permite filtrar qué dominio está autorizado a consultar su aplicación, pero no hace nada con los permisos del servidor.

A partir de cordova 5, deberás agregar el complemento de la lista blanca

https://github.com/apache/cordova-plugin-whitelist

En config.xml add