IE no funciona con localhost + puerto

25

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).

ingrese la descripción de la imagen aquí

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 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

ingrese la descripción de la imagen aquí

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-8y según la respuesta correcta, debería ser: Content-Type: text/html; charset=utf-8con un espacio entre el tipo y el juego de caracteres.

Aquí están los resultados:

ingrese la descripción de la imagen aquí

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.

mawcsco
fuente
1
Vote por las capturas de pantalla.
Oxymoron
En primer lugar, deshaga la mayoría de las cosas que ha probado, especialmente la adición a la zona de Intranet. Si va a agregarlo a una zona, use sitios de confianza.
Frank Thomas
@ FrankThomas Gracias por recordármelo. Intenté eso sin éxito. He editado mi pregunta para reflejar eso.
mawcsco
¿Podría publicar su configuración de enlace?
Vanadis
@Vanadis bind-settings? ¿Puedes aclarar?
mawcsco

Respuestas:

9

El artículo WWW3 Configuración del parámetro de juego de caracteres HTTP especifica:

Content-Type: text/html; charset=utf-8

Esto define Content-Typecomo tener un espacio en blanco antes charset.

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.

harrymc
fuente
1) El uso del nombre de la máquina no soluciona la situación. 2) Ya utilicé Fiddler e incluí los resultados en mi publicación. 3) Wireshark + pcap no puede capturar en localhost. Utilicé RawCap + Wireshark y los resultados fueron idénticos a Fiddler.
mawcsco
Por idéntico, quise decir que los paquetes decodificados se veían casi iguales.
mawcsco
No me he "dado por vencido" con Fiddler. Funciona bien y obtengo los mismos "resultados": Chrome, Firefox, Opera se conectan bien, IE no. Publiqué la respuesta de solicitud sin decodificar y todo parece normal / correcto y, sin embargo, IE no muestra la página.
mawcsco
¿Qué consejo es ese? Ya probé el nombre de la máquina. Mi publicación dice eso. El certificado raíz de Fiddler solo es necesario para realizar conexiones SSL; No tengo necesidad de eso (y no veo cómo esto podría ayudar). Ya probé Wireshark, no revela nada nuevo. Fiddler mostró con éxito que la solicitud / respuesta del servidor está bien, lo que deduje al ver que todos los demás navegadores funcionan bien. SOLO IE se comporta de manera diferente.
mawcsco
Sí, "agarrar pajitas" es exactamente cómo se siente esto. Estoy al final de mi ingenio. UAC ya está desactivado, no hay ayuda allí. Estoy investigando el problema del espacio del juego de caracteres, pero no tengo idea de cómo voy a futz con eso. Lo estoy investigando.
mawcsco
3

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:

FEATURE_BROWSER_EMULATION

y dentro de él, cree un valor DWORD:

iexplorer.exe

con un valor de uno de los siguientes:

 IE8 - 8000 (or 8001)
 IE9 - 9000 (or 9001)
 IE10 - 10000 (or 10001)

Hemos tenido el mayor éxito con 10001.

WreithKassan
fuente
Ya he probado esto en varias máquinas, algunas de las cuales tenían una instalación "nueva" de Windows e IE.
mawcsco
¿Has ejecutado IE con complementos deshabilitados? Sé que dijiste que era una instalación nueva, pero a veces viene preempaquetada con hinchazón.
WreithKassan
Una vez más, una nueva instalación de Windows e IE. No hay complementos instalados.
mawcsco
Mi publicación original ya indica que he intentado 127.0.0.1. Probaré el truco de "emulación".
mawcsco
Ok, ninguno de los valores de emulación del navegador en esta respuesta funciona.
mawcsco
1

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).

Xavier J
fuente
Definitivamente no hay proxy pasando aquí. Ni siquiera usamos NAT. Actualicé mi pregunta en consecuencia.
mawcsco
Dicho esto, conecte su navegador con Fiddler y vea qué podría estar pasando bajo el capó. Pruebe algunos sitios que funcionen, luego pruebe localhost y observe la visualización del tráfico. Lo mejor que puedo recomendar. fiddler2.com
Xavier J
Entonces, Fiddler presenta un proxy. Ahora, en IE, veo: "El servidor proxy no responde". Sin embargo, la solicitud / respuesta en Fiddler muestra que todo está bien. El servidor respondió con los encabezados esperados y el contenido HTML. Pero, eso no es lo que veo en IE.
mawcsco
-1

Estoy haciendo estos cambios, y todos funcionan bien en Windows 10 64 bits.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

usuario728452
fuente
1
No creo que esto solucione el problema de los OP, que se confirmó que era una respuesta HTTP de tipo Cntent malformada.
DavidPostill