it-swarm.com.de

IE funktioniert nicht mit localhost + port

Ich habe einen NodeJS-Server, der zu Entwicklungszwecken auf meinem lokalen Computer ausgeführt wird. Standardmäßig wird Port 1337 verwendet. (Ich habe einige andere Ports ausprobiert, z. B. 8080, 1234, 9000, 9090, 65432 usw.).

Ich kann erfolgreich eine Verbindung zu diesem NodeJS-Server von Chrome, Firefox und Opera herstellen. Wenn ich jedoch versuche, eine Verbindung mit Internet Explorer 11 herzustellen, wird "Diese Seite kann nicht angezeigt werden" (siehe Abbildung).

enter image description here

Ich habe eine Vielzahl von "Lösungen" ausprobiert und auf dieser Website mehrere Fragen/Antworten angezeigt. Keiner von ihnen hat funktioniert. Einschließlich:

  • Ich habe 127.0.0.1 ausprobiert
  • Ich habe den "Geschützten Modus" und den "Erweiterten Schutzmodus" deaktiviert.
  • Ich habe "localhost" zur Intranetzone und zur vertrauenswürdigen Zone hinzugefügt.
  • Ich habe "Freundliche HTTP-Nachrichten" deaktiviert, in der Hoffnung, mehr Details zu sehen.
  • Ich habe versucht, meinen Computernamen und DNS-Namen zu verwenden.
  • Ich habe versucht, einen manuellen Eintrag in meiner Hosts-Datei für "localhost" und sogar "thisismyfrigginpc" mithilfe meiner IPv4-Adresse zu erstellen.

Der einzige Erfolg, den ich hatte, ist, wenn der Server an Port 80 ausgeführt wird (http://localhost:80/ oder http://localhost). Ich kann jedoch aus verschiedenen Gründen nicht auf Port 80 entwickeln. Ich muss meinen Code auf localhost + port testen (irgendein Port, irgendein anderer als 80 und 443).

Fragen und Antworten, die nicht helfen:

Bitte um Hilfe!

Übrigens, mit Windows 7 Enterprise 64-Bit. Unternehmensbereitstellung, aber ich habe Administratorrechte. Die Netzwerkkonfiguration ist ein Standard-DHCP ohne NAT und ohne Proxy.

UPDATE

Auf Empfehlung von @codenoire habe ich Fiddler installiert, um die Anfrage/Antwort zu sehen. Nachfolgend finden Sie die unformatierten Anforderungen und Antworten von IE-to-Fiddler-to-Server-to-Fiddler:

Anfrage

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

Antwort

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>

Ergebnis

enter image description here

Update 17.01.2014

Ich habe dieses Szenario auf "sauberen" Windows 7-Installationen anderer Hersteller mit IE 11 getestet. Die Ergebnisse stimmen mit meinen bisherigen Beobachtungen überein. Dies bedeutet, dass jede Konfiguration, die von einem Unternehmensimage von Windows vorgenommen wird, als Ursache ausgeschlossen werden kann. Außerdem ist die Netzwerkkonfiguration ziemlich "Vanilla".

Update 21.01.2014

Ich habe die Internet Explorer "Emulation" -Ideen ausprobiert. Ich habe den Schlüssel "iexplorer.exe" als DWORD- und QWORD-Wert (einzeln) mit den Werten 8000, 8001, 9000, 9001, 10000, and 10001 erstellt. Nach jedem Neustart und erneut getestet. Alle diese Versuche führten zu den gleichen Ergebnissen. Abgesehen davon müssen wir diesen Code in IE11 testen. Die verschiedenen Kompatibilitätscodes und Tricks helfen uns auf lange Sicht nicht.

Update 22.01.2014

Hat einen XAMPP-Apache-Server an Port 1337 gestartet. IE stellt eine Verbindung zu diesem Server her. Es gibt also etwas an der NodeJS-Antwort, das IE nicht mag, und die anderen Browser scheinen gut damit umzugehen. Wir werden unseren NodeJS-Code untersuchen, um herauszufinden, was genau in den Headern/Inhalten passiert, um festzustellen, ob etwas nicht in Ordnung ist.

Update 27.01.2014: Auflösung

Ich wollte nur die Ergebnisse dokumentieren. Die ursprüngliche Antwort enthielt Content-Type: text/html;charset=utf-8. Basierend auf der richtigen Antwort sollte es sein: Content-Type: text/html; charset=utf-8 mit einem Leerzeichen zwischen dem Typ und dem Zeichensatz.

Hier sind die Ergebnisse:

enter image description here

Rohe Antwort:

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>

Vielen Dank an @harrymc für die Aufdeckung der Antwort.

24
mawcsco

Der WWW3-Artikel zum Festlegen des HTTP-Zeichensatzparameters gibt Folgendes an:

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

Dies definiert Content-Type als ein Leerzeichen vor charset.

Ich weiß, dass Sie bereits herausgefunden haben, dass dies tatsächlich das Problem ist. Die Ursache des Problems ist eine sehr einfallslose Programmierung durch Microsoft oder einen Middle-Man-Proxy.

9
harrymc

Möglicherweise liegt ein Problem in Ihren Einstellungen für den Internet Explorer vor.

Am einfachsten können Sie dies beheben, indem Sie die Internetoptionen öffnen, zur Registerkarte "Erweitert" wechseln und auf "Internet Explorer-Einstellungen zurücksetzen" klicken. Stellen Sie sicher, dass Sie dies auswählen und nicht "Erweiterte Einstellungen zurücksetzen", da dies nicht ALLE Einstellungen umfasst.

Wenn dies nicht funktioniert, versuchen Sie bitte auch, mit 127.0.0.1 anstelle von localhost zu navigieren. Dies wird das Problem wahrscheinlich nicht lösen, kann aber manchmal zu einem Problem führen.

Edit: Ich wollte hinzufügen, dass dies ein Problem mit IE11 sein könnte. Ich weiß, dass wir viele Kompatibilitätsprobleme damit hatten. Wenn Sie kein Rollback auf IE10 durchführen und dies versuchen möchten, können Sie immer Emulate aus der Registrierung ausführen:

Unter

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

sie erstellen einen Schlüssel mit dem Namen:

FEATURE_BROWSER_EMULATION

erstellen Sie darin einen DWORD-Wert:

iexplorer.exe

mit einem Wert von einem der folgenden Werte:

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

Wir haben mit 10001 den größten Erfolg gehabt.

2
WreithKassan

Überprüfen Sie Ihre Proxy-Einstellungen. Da Sie sich in einem Unternehmensnetzwerk befinden, ist möglicherweise eine unzureichende Proxy-Richtlinie in Ihrem IE gespeichert (die nicht unbedingt für die anderen Browser gespiegelt wird).

1
Xavier J