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.
quelle
Antworten:
Der WWW3-Artikel Festlegen des HTTP-Zeichensatzparameters gibt Folgendes an:
Dies definiert
Content-Type
als ein Leerzeichen vorcharset
.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.
quelle
Möglicherweise liegt ein Problem in Ihren Einstellungen für den Internet Explorer vor.
Die einfachste Möglichkeit, dies zu beheben, besteht darin, die Internetoptionen zu öffnen, zur Registerkarte "Erweitert" zu wechseln und auf "Internet Explorer-Einstellungen zurücksetzen" zu 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:
Erstellen Sie darin einen DWORD-Wert:
mit einem Wert von einem der folgenden Werte:
Wir haben mit 10001 den größten Erfolg gehabt.
quelle
Überprüfen Sie Ihre Proxy-Einstellungen. Da Sie sich in einem Unternehmensnetzwerk befinden, hat möglicherweise jemand eine unzureichende Proxy-Richtlinie in Ihrem IE (die nicht unbedingt für die anderen Browser gespiegelt wird).
quelle
Ich nehme diese Änderungen vor und alle funktionieren einwandfrei unter Windows 10 64-Bit.
quelle