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).
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, um 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 ( http://localhost:80/
oder http://localhost
) ausgeführt wird. 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:
- Warum kann ich http: // localhost nicht über den IE aufrufen?
- Chrome und Firefox können localhost erreichen. Internet Explorer 9 kann nicht. Warum?
- Wie teste ich lokale Websites in Metro IE10?
- /programming/19268956/can-not-access-localhostport
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.
AKTUALISIEREN
Auf Empfehlung von @codenoire habe ich Fiddler installiert, um die Anfrage / Antwort zu sehen. Nachfolgend finden Sie die unformatierte Anfrage und Antwort von IE-to-Fiddler-to-Server-to-Fiddler:
Anfordern
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
Update 17.01.2014
Ich habe dieses Szenario auf "sauberen" Windows 7-Installationen von Drittanbietern 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 beseitigt werden kann. Auch die Netzwerkkonfiguration ist ziemlich "Vanille".
Update vom 21.01.2014
Ich habe versucht, die Internet Explorer "Emulation" -Ideen. Ich habe den Schlüssel "iexplorer.exe" als DWORD- und QWORD-Wert (einzeln) mit den Werten erstellt 8000, 8001, 9000, 9001, 10000, and 10001
. 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 ihm her. Es gibt also etwas an der NodeJS-Antwort, das der 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
und 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:
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.