IE ne fonctionne pas avec localhost + port

25

J'ai un serveur NodeJS en cours d'exécution sur ma machine locale à des fins de développement. Par défaut, il utilise le port 1337. (J'ai essayé une poignée d'autres ports tels que 8080, 1234, 9000, 9090, 65432 et al).

Je peux me connecter avec succès à ce serveur NodeJS à partir de Chrome, Firefox et Opera. Mais, lorsque j'essaye de me connecter avec Internet Explorer 11, je vois "Cette page ne peut pas être affichée" (voir image).

entrez la description de l'image ici

J'ai essayé diverses "solutions" et j'ai consulté plusieurs questions / réponses sur ce site. Aucun d'eux n'a fonctionné. Comprenant:

  • J'ai essayé 127.0.0.1
  • J'ai désactivé le "Mode protégé" et le "Mode de protection amélioré".
  • J'ai ajouté "localhost" à la zone intranet et à la zone de confiance.
  • J'ai désactivé les "Messages HTTP conviviaux" en espérant voir plus de détails.
  • J'ai essayé d'utiliser le nom de mon ordinateur et le nom DNS.
  • J'ai essayé de créer une entrée manuelle dans mon fichier d'hôtes pour "localhost" et même "thisismyfrigginpc" en utilisant mon adresse IPv4.

Le seul succès que j'ai eu, c'est lorsque le serveur fonctionne sur le port 80 ( http://localhost:80/ou http://localhost). Cependant, je ne peux pas développer sur le port 80 pour diverses raisons. J'ai besoin de tester mon code sur le port localhost + (certains ports, tout port autre que 80 et 443).

Questions et réponses qui n'aident pas:

Veuillez aider!

BTW, exécutant Windows 7 Enterprise 64 bits. Déploiement d'entreprise, mais j'ai des droits d'administrateur. La configuration du réseau est un DHCP assez standard sans NAT ni proxy.

MISE À JOUR

Sur recommandation de @codenoire, j'ai installé Fiddler pour voir la demande / réponse. Vous trouverez ci-dessous la demande et la réponse brutes d'IE-à-Fiddler-au-serveur-à-Fiddler:

Demande

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

Réponse

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>

Résultat

entrez la description de l'image ici

Mise à jour 2014-01-17

J'ai testé ce scénario sur des installations Windows 7 «propres» hors entreprise avec IE 11. Les résultats sont identiques à mes observations permanentes. Cela signifie que toute configuration effectuée par une image d'entreprise de Windows peut être éliminée en tant que cause. De plus, la configuration du réseau est assez "vanille".

Mise à jour 2014-01-21

J'ai essayé les idées "d'émulation" d'Internet Explorer. J'ai créé une clé, "iexplorer.exe" en tant que valeurs DWORD et QWORD (individuellement) avec les valeurs 8000, 8001, 9000, 9001, 10000, and 10001. Après chacun, redémarré et testé à nouveau. Toutes ces tentatives ont produit les mêmes résultats. Soit dit en passant, nous devons tester ce code dans IE11. Les divers codes et astuces de compatibilité ne nous aident pas à long terme.

Mise à jour 2014-01-22

Démarrage d'un serveur XAMPP Apache sur le port 1337. IE s'y connecte très bien. Donc, il y a quelque chose dans la réponse NodeJS que IE n'aime pas et les autres navigateurs semblent bien gérer. Nous allons enquêter sur notre code NodeJS pour voir ce qui se passe exactement dans les en-têtes / contenus pour voir si quelque chose est hors ligne.

Mise à jour 2014-01-27: Résolution

Je voulais juste documenter les résultats. La réponse d'origine comprenait Content-Type: text/html;charset=utf-8et basée sur la bonne réponse, elle devrait être: Content-Type: text/html; charset=utf-8avec un espace entre le type et le jeu de caractères.

Voici les résultats:

entrez la description de l'image ici

Réponse brute:

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>

Merci à @harrymc d'avoir découvert la réponse.

mawcsco
la source
1
Votez pour des captures d'écran.
Oxymoron
Tout d'abord, annulez la plupart des choses que vous avez essayées, en particulier l'ajout à la zone Intranet. si vous comptez l'ajouter à une zone, utilisez Sites de confiance.
Frank Thomas
@FrankThomas Merci de me le rappeler. J'ai essayé cela sans succès. J'ai édité ma question pour refléter cela.
mawcsco
Pourriez-vous s'il vous plaît publier vos paramètres de liaison?
Vanadis
@Vanadis bind-settings? Pouvez-vous clarifier?
mawcsco

Réponses:

9

L'article WWW3 Définition du paramètre de jeu de caractères HTTP spécifie:

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

Cela définit Content-Typecomme ayant un blanc avant charset.

Je sais que vous avez déjà découvert que c'est effectivement le problème, donc la source du problème est une programmation très peu imaginative de Microsoft ou d'un proxy intermédiaire.

harrymc
la source
1) L'utilisation du nom de la machine ne résout pas la situation. 2) J'ai déjà utilisé Fiddler et inclus les résultats dans mon message. 3) Wireshark + pcap ne peut pas capturer sur localhost. J'ai utilisé RawCap + Wireshark et les résultats étaient identiques à Fiddler.
mawcsco
Par identique, je voulais dire que les paquets décodés se ressemblaient à peu près.
mawcsco
Je n'ai pas "abandonné" Fiddler. Cela fonctionne bien et j'obtiens les mêmes "résultats": Chrome, Firefox, Opera connectent bien, IE ne fonctionne pas. J'ai publié la réponse brute et décodée de la demande et tout semble normal / correct et pourtant IE ne parvient pas à afficher la page.
mawcsco
Quel conseil est-ce? J'ai déjà essayé le nom de la machine. Mon message le dit. Le certificat racine Fiddler n'est nécessaire que pour établir des connexions SSL; Je n'en ai pas besoin (et je ne vois pas comment cela pourrait même aider.) J'ai déjà essayé Wireshark, cela ne révèle rien de nouveau. Fiddler a montré avec succès que la demande / réponse du serveur était correcte, ce que j'ai déduit en voyant que tous les autres navigateurs fonctionnaient correctement. SEUL IE se comporte différemment.
mawcsco
Ouais, "saisir les pailles" est exactement ce que ça fait. Je suis à bout de souffle. UAC est déjà désactivé, aucune aide là-bas. J'examine la question de l'espace de jeu de caractères, mais je ne sais pas comment je vais faire un futz avec ça. J'y regarde.
mawcsco
3

Il y a probablement un problème dans vos paramètres pour IE.

Le moyen le plus simple de résoudre ce problème serait d'ouvrir les Options Internet, d'accéder à l'onglet Avancé et de cliquer sur "Réinitialiser les paramètres d'Internet Explorer". Assurez-vous de choisir cela et non de "Réinitialiser les paramètres avancés", car celui-ci ne comprend pas TOUS les paramètres.

Si cela ne fonctionne pas, essayez également de naviguer en utilisant 127.0.0.1 au lieu de localhost. Cela ne résoudra probablement pas le problème, mais pourrait parfois créer un problème.

Edit: je voulais ajouter que cela pourrait être un problème avec IE11. Je sais que nous avons eu beaucoup de problèmes de compatibilité avec elle. Si vous ne souhaitez pas revenir à IE10 et essayer cela, vous pouvez toujours émuler à partir du registre:

En dessous de

HKLM\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\

vous allez créer une clé appelée:

FEATURE_BROWSER_EMULATION

et à l'intérieur, créez une valeur DWORD:

iexplorer.exe

avec une valeur de l'un des éléments suivants:

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

Nous avons eu le plus de succès avec 10001.

WreithKassan
la source
J'ai déjà testé cela sur plusieurs machines, dont une poignée avait une "nouvelle" installation de Windows et IE.
mawcsco
Avez-vous exécuté IE avec des extensions désactivées? Je sais que vous avez dit que c'était une nouvelle installation, mais elle est parfois préemballée avec du ballonnement.
WreithKassan
Encore une fois, une nouvelle installation de Windows et IE. Aucun module complémentaire installé.
mawcsco
Mon message d'origine indique déjà que j'ai essayé 127.0.0.1. Je vais essayer l'astuce "émulation".
mawcsco
Ok, aucune des valeurs d'émulation du navigateur dans cette réponse ne fonctionne.
mawcsco
1

Vérifiez vos paramètres de proxy. Étant donné que vous êtes sur un réseau d'entreprise, quelqu'un peut avoir une politique de proxy inadéquate insérée dans votre IE (qui ne reflétera pas nécessairement les autres navigateurs).

Xavier J
la source
Certainement pas de proxy en cours ici. Nous n'utilisons même pas NAT. Mis à jour ma question en conséquence.
mawcsco
Cela dit, connectez votre navigateur à Fiddler et voyez ce qui pourrait se passer sous le capot. Essayez certains sites qui fonctionnent, puis essayez localhost et regardez l'affichage du trafic. Le mieux que je puisse recommander. fiddler2.com
Xavier J
Ainsi, Fiddler introduit un proxy. Maintenant, dans IE, je vois: "Le serveur proxy ne répond pas." Cependant, la demande / réponse dans Fiddler montre que tout va bien. Le serveur a répondu avec les en-têtes et le contenu HTML attendus. Mais ce n'est pas ce que je vois dans IE.
mawcsco
-1

Je fais ces changements, et tout fonctionne bien sur Windows 10 64 bits.

entrez la description de l'image ici

entrez la description de l'image ici

user728452
la source
1
Je ne pense pas que cela résoudra le problème des OP - qui a été confirmé comme une réponse HTTP mal formée de type Cntent.
DavidPostill