Mam serwer NodeJS uruchomiony na moim komputerze lokalnym w celach programistycznych. Domyślnie korzysta z portu 1337. (Próbowałem kilka innych portów, takich jak 8080, 1234, 9000, 9090, 65432 i in.).
Mogę z powodzeniem połączyć się z tym serwerem NodeJS z Chrome, Firefox i Opera. Ale kiedy próbuję połączyć się z Internet Explorerem 11, widzę „Ta strona nie może zostać wyświetlona” (patrz zdjęcie).
Próbowałem różnych „rozwiązań” i przeglądałem kilka pytań / odpowiedzi na tej stronie. Żaden z nich nie działał. Włącznie z:
- Próbowałem 127.0.0.1
- Wyłączyłem „Tryb chroniony” i „Tryb rozszerzonej ochrony”.
- Dodałem „localhost” do Strefy Intranetowej i Strefy zaufanej.
- Wyłączyłem „Przyjazne wiadomości HTTP”, mając nadzieję zobaczyć więcej szczegółów.
- Próbowałem użyć nazwy mojego komputera i nazwy DNS.
- Próbowałem utworzyć ręczny wpis w pliku hosts dla „localhost”, a nawet „thisismyfrigginpc” przy użyciu mojego adresu IPv4.
Jedyny sukces, jaki odniosłem, to uruchomienie serwera na porcie 80 ( http://localhost:80/
lub http://localhost
). Jednak nie mogę rozwijać się na porcie 80 z różnych powodów. Muszę przetestować mój kod na localhost + port (jakiś port, dowolny port inny niż 80 i 443).
Pytania i odpowiedzi, które nie pomagają:
- Dlaczego nie mogę odwiedzić http: // localhost przez IE?
- Chrome i Firefox mogą uzyskać dostęp do localhost; Internet Explorer 9 nie może. Czemu?
- Jak przetestować lokalne strony w Metro IE10?
- /programming/19268956/can-not-access-localhostport
Proszę pomóż!
BTW, z systemem Windows 7 Enterprise 64-bitowym. Wdrożenie korporacyjne, ale mam uprawnienia administratora. Konfiguracja sieci jest dość standardowym DHCP bez NAT i proxy.
AKTUALIZACJA
Zgodnie z zaleceniem @codenoire zainstalowałem Fiddler, aby zobaczyć żądanie / odpowiedź. Poniżej znajdują się surowe żądania i odpowiedzi od IE-to-Fiddler-to-server-to-Fiddler:
Żądanie
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
Odpowiedź
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>
Wynik
Aktualizacja 17.01.2014
Testowałem ten scenariusz na „czystych” niekorporacyjnych instalacjach Windows 7 z IE 11. Wyniki są identyczne z moimi stałymi obserwacjami. Oznacza to, że każdą konfigurację wykonaną przez obraz korporacyjny systemu Windows można wyeliminować jako przyczynę. Ponadto konfiguracja sieci jest dość „waniliowa”.
Aktualizacja 21.01.2014
Próbowałem pomysłów „emulacji” programu Internet Explorer. Utworzyłem klucz „iexplorer.exe” jako wartości DWORD i QWORD (indywidualnie) z wartościami 8000, 8001, 9000, 9001, 10000, and 10001
. Po każdym zrestartowano i ponownie przetestowano. Wszystkie te próby dały takie same wyniki. Nawiasem mówiąc, musimy przetestować ten kod w IE11. Różne kody zgodności i triki tak naprawdę nie pomagają nam na dłuższą metę.
Aktualizacja 22.01.2014
Uruchomiłem serwer Apache XAMPP na porcie 1337. IE łączy się z nim dobrze. W odpowiedzi NodeJS jest coś, czego IE nie lubi, a inne przeglądarki wydają się dobrze obsługiwać. Będziemy badać nasz kod NodeJS, aby zobaczyć, co dokładnie dzieje się w nagłówkach / treści, aby sprawdzić, czy coś jest nie w porządku.
Aktualizacja 27.01.2014: Rozwiązanie
Chciałem tylko udokumentować wyniki. Oryginalna odpowiedź zawierała Content-Type: text/html;charset=utf-8
i na podstawie poprawnej odpowiedzi powinna być: Content-Type: text/html; charset=utf-8
ze spacją między typem a zestawem znaków.
Oto wyniki:
Surowa odpowiedź:
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>
Dzięki @harrymc za odkrycie odpowiedzi.