El acceso a XMLHttpRequest ha sido bloqueado por la política de CORS

Problema

Cuando intentas iniciar sesión en tu sitio, no recibes ningún mensaje de error desde la pantalla de inicio de sesión, pero aún así no puedes acceder a tus aplicaciones.

Si presionas F12 en tu navegador, puedes ver los siguientes mensajes de error en la consola:

El acceso a XMLHttpRequest en ... desde el origen ... ha sido bloqueado por la política de CORS. La respuesta a la solicitud de pre-vuelo no pasa la verificación de control de acceso: No hay un encabezado 'Access-Control-Allow-Origin' presente en la fuente solicitada.

mceclip0.png

Descripción

La solicitud está siendo bloqueada por la política de CORS. Por ejemplo, cuando escribes la siguiente URL:

yourserver.com:8009/gpsgateserver

Obtienes el error descrito anteriormente.

La configuración del firewall del servidor está configurada para reenviar datos desde el puerto interno 80 a solicitudes externas que vienen del puerto 8009.

mceclip2.png

Por defecto, la configuración de IIS está vinculada para reenviar datos al puerto 80. 

Solución

El puerto interno y externo de la URL de tu servidor GpsGate debe ser el mismo. En nuestro ejemplo, la solución proviene de:

1. Cambiar la configuración del firewall para reenviar datos desde 8009 a un puerto interno 8009.

mceclip3.png

2. Cambiar la configuración de IIS para estar vinculada al puerto 8009 o a un puerto que coincida con el puerto externo.

2.1 Abre tu administrador de IIS y selecciona el Sitio Predeterminado > Enlaces

mceclip4.png

2.2 Cambia el puerto predeterminado de 80 a tu puerto personalizado, en nuestro ejemplo, 8009. 

mceclip5.png

2.3. Realiza 'iisreset' desde la línea de comandos para aplicar los cambios.