close

Directorio Activo Puertos Firewall - Vamos a tratar de hacer este sencillo

Al desarrollar una aplicación móvil usando PhoneGap o, lo realmente puede acelerar su desarrollo. Se podía servir a los archivos HTML utilizando directamente Cordova sirven, pero la plataforma del navegador, mientras que ser casi tan rápido, es mucho más cerca del androide / IOS Entornos de su aplicación con el tiempo se encontrará en. También tiene acceso a la API de Córdoba.

Mi flujo de trabajo general es que sigo Cordova navegador running en una ventana de terminal (esto comenzará inicialmente una nueva instancia de cromo), y ejecutar periódicamente Cordova preparar navegador que estoy desarrollando. Esta última paquetes de intensificar la "app", junto con los bits cordova.js, para la plataforma del navegador.

Sin embargo, si su aplicación hace contacto con un API de servidor externo o en cualquier momento, por ejemplo, con jQuery.ajax (), que serán recibidos por el siguiente error:

XMLHttpRequest no puede cargar ncabecera 'Access-Control-Allow-Origin' está presente en la solicitadarecurso. por lo tanto, no se permite Origen 'acceso.

En resumen, el navegador Chrome es (sabiamente) negarse a acceder a ese recurso fuera (la API o servidor) por razones de seguridad. Si su navegador no lo hizo, un atacante podría acceder fácilmente a servicios Web mediante su identidad!

Leyendo acerca de esta cuestión en el contexto de Córdoba / PhoneGap, se puede encontrar la solución común para estar bien para modificar el servidor que está accediendo a permitir explícitamente este tipo de acceso de origen cruzado, o para configurar un proxy si el primero no es posible. A menudo, la ex de hecho no es posible (en mi caso, la aplicación está hablando con un router de hardware API), pero el último es simplemente demasiado esfuerzo innecesario.

El fácil (pero bueno) fijar Recordemos que Córdoba se pone en marcha una nueva instancia de cromo que sólo se utiliza para acceder a su aplicación. La aplicación es completamente bajo su control, por lo que el riesgo de juego sucio por un tercero, se reduce significativamente. En lugar de configurar servidores proxy, o el cambio de servidores, podríamos instruir este caso especial de cromo ignorar sus reglas de origen cruzado! Me tomó un tiempo para realizar un seguimiento de esto abajo, así que aquí va: Editar browser.js en yourapp / plataformas / navegador / Córdoba / node_modules / Cordova-servicio / src y cambie sólo la línea chromeArgs lo que parece que el que está en el fragmento a continuación (sólo estás añadiendo el argumento de la seguridad en la web---disable): función getBrowser (objetivo, dataDir) {     DataDir = DataDir || 'Temp_chrome_user_data_dir_for_cordova';     chromeArgs var = '--user-data-dir = / tmp /' DataDir '--disable-web-seguridad ";  Ahora hacer 100% seguro de que todos los casos de cromo Cordova se detienen. La próxima vez que lo haga navegador Cordova, de gestión, tenga en cuenta que la ventana de cromo que aparece tieneuna barra amarilla que le advierte acerca de la seguridad de Internet: Sólo los casos especiales de cromo empezó a subir por Córdoba para aplicaciones donde se ha aplicado la revisión anterior tendrán deshabilitado web de seguridad. Por todos los medios tomar nota de la advertencia de color amarillo, sino que además disfrutar de todas sus solicitudes de aplicación Cordova contactar exitosamente al mundo exterior!

Previous Post     Next Post


TAGS


CATEGORIES

.