Tengo un servidor NodeJS ejecutándose en mi máquina local para fines de desarrollo. Por defecto, usa el puerto 1337. (He probado un puñado de otros puertos como 8080, 1234, 9000, 9090, 65432 y otros).
Puedo conectarme con éxito a este servidor NodeJS desde Chrome, Firefox y Opera. Pero, cuando intento conectarme con Internet Explorer 11, veo "Esta página no se puede mostrar" (ver imagen).
He intentado una variedad de "soluciones" y he visto varias preguntas / respuestas en este sitio. Ninguno de ellos ha trabajado. Incluso:
- He intentado 127.0.0.1
- He desactivado "Modo protegido" y "Modo de protección mejorada".
- He agregado "localhost" a la Zona Intranet y a la Zona Trusted.
- He desactivado "Mensajes HTTP amigables" con la esperanza de ver más detalles.
- Intenté usar el nombre de mi máquina y el nombre DNS.
- Intenté crear una entrada manual en mi archivo de hosts para "localhost" e incluso "thisismyfrigginpc" usando mi dirección IPv4.
El único éxito que he tenido es cuando el servidor se ejecuta en el puerto 80 ( http://localhost:80/
o http://localhost
). Sin embargo, no puedo desarrollar en el puerto 80 por una variedad de razones. Necesito probar mi código en localhost + port (algún puerto, cualquier puerto que no sea 80 y 443).
Preguntas y respuestas que no ayudan:
- ¿Por qué no puedo visitar http: // localhost a través de IE?
- Chrome y Firefox pueden llegar a localhost; Internet Explorer 9 no puede. ¿Por qué?
- ¿Cómo probar sitios locales en Metro IE10?
- /programming/19268956/can-not-access-localhostport
¡Por favor ayuda!
Por cierto, ejecutando Windows 7 Enterprise de 64 bits. Despliegue corporativo, pero tengo derechos de administrador. La configuración de red es DHCP bastante estándar sin NAT y sin Proxy.
ACTUALIZAR
Por recomendación de @codenoire, instalé Fiddler para ver la solicitud / respuesta. A continuación se muestran la solicitud y la respuesta sin formato de IE-a-Fiddler-to-server-to-Fiddler:
Solicitud
GET http://localhost:1337/common/test.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: localhost:1337
Respuesta
HTTP/1.1 200 OK
Set-Cookie: _session=WRuVLmrXMtjnDJY8;expires=Wed, 15 Jan 2014 23:19:16 GMT;path=/;domain=;httponly
Content-Type: text/html;charset=utf-8
Last-Modified: 1389818856000
Date: Wed, 15 Jan 2014 22:19:16 GMT
Connection: keep-alive
Content-Length: 128
<html>
<head>
<title>Connectivity Test Page</title>
</head>
<body>
<h1>This is a test page.</h1>
</body>
</html>
Resultado
Actualizar 2014-01-17
He probado este escenario en instalaciones de Windows 7 no corporativas "limpias" con IE 11. Los resultados son idénticos a mis observaciones permanentes. Esto significa que cualquier configuración realizada por una imagen corporativa de Windows puede eliminarse como causa. Además, la configuración de red es bastante "vainilla".
Actualizar 21-01-2014
He probado las ideas de "emulación" de Internet Explorer. Creé una clave, "iexplorer.exe" como valores DWORD y QWORD (individualmente) con los valores8000, 8001, 9000, 9001, 10000, and 10001
. Después de cada uno, reiniciado y probado de nuevo. Todos estos intentos produjeron los mismos resultados. Como comentario aparte, debemos probar este código en IE11. Los diversos códigos y trucos de compatibilidad en realidad no nos ayudan a largo plazo.
Actualizar 2014-01-22
Encendió un servidor XAMPP Apache en el puerto 1337. IE se conecta muy bien. Entonces, hay algo en la respuesta de NodeJS que a IE no le gusta y los otros navegadores parecen manejarse bien. Investigaremos nuestro código NodeJS para ver qué sucede exactamente en los encabezados / contenido para ver si algo está fuera de línea.
Actualización 2014-01-27: Resolución
Solo quería documentar los resultados. La respuesta original incluía Content-Type: text/html;charset=utf-8
y según la respuesta correcta, debería ser: Content-Type: text/html; charset=utf-8
con un espacio entre el tipo y el juego de caracteres.
Aquí están los resultados:
Respuesta sin procesar:
HTTP/1.1 200 OK
Set-Cookie: _session=EshWS7xDnCeV9pXS;expires=Mon, 27 Jan 2014 18:49:21 GMT;path=/;domain=;httponly
Date: Mon, 27 Jan 2014 17:49:21 GMT
Last-Modified: 1389818856000
Content-Type: text/html; charset=UTF-8
Content-Length: 128
Connection: keep-alive
<html>
<head>
<title>Connectivity Test Page</title>
</head>
<body>
<h1>This is a test page.</h1>
</body>
</html>
Gracias a @harrymc por descubrir la respuesta.
fuente
Respuestas:
El artículo WWW3 Configuración del parámetro de juego de caracteres HTTP especifica:
Esto define
Content-Type
como tener un espacio en blanco antescharset
.Sé que ya has descubierto que este es realmente el problema, por lo que la fuente del problema es una programación muy poco imaginativa de Microsoft o de algún intermediario.
fuente
Probablemente haya un problema en su configuración para IE.
La forma más fácil de solucionar esto sería abrir las Opciones de Internet, ir a la pestaña avanzada y hacer clic en "Restablecer configuración de Internet Explorer". Asegúrese de elegir eso y no "Restablecer configuración avanzada", ya que este no abarca TODAS las configuraciones.
Si esto no funciona, intente navegar usando 127.0.0.1 en lugar de localhost. No es probable que esto resuelva el problema, pero a veces podría crear un problema.
Editar: quería agregar que esto podría ser un problema con IE11. Sé que hemos tenido muchos problemas de compatibilidad con él. Si no desea revertir a IE10 y probar eso, siempre puede Emular desde el registro:
Debajo
HKLM\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\
creará una clave llamada:
y dentro de él, cree un valor DWORD:
con un valor de uno de los siguientes:
Hemos tenido el mayor éxito con 10001.
fuente
Verifique su configuración de proxy. Dado que está en una red corporativa, alguien puede tener una política de proxy inadecuada en su IE (que no necesariamente se reflejará en los otros navegadores).
fuente
Estoy haciendo estos cambios, y todos funcionan bien en Windows 10 64 bits.
fuente