IE nie działa z portem localhost +

25

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).

wprowadź opis zdjęcia tutaj

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ą:

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

wprowadź opis zdjęcia tutaj

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-8i na podstawie poprawnej odpowiedzi powinna być: Content-Type: text/html; charset=utf-8ze spacją między typem a zestawem znaków.

Oto wyniki:

wprowadź opis zdjęcia tutaj

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.

mawcsco
źródło
1
Głosuj na zrzuty ekranu.
Oxymoron
po pierwsze, cofnij większość rzeczy, które wypróbowałeś, zwłaszcza dodanie do strefy intranetowej. jeśli chcesz dodać go do strefy, użyj Zaufanych witryn.
Frank Thomas
@FrankThomas Dzięki za przypomnienie. Próbowałem tego bez powodzenia. Zredagowałem moje pytanie, aby to odzwierciedlić.
mawcsco
Czy możesz podać swoje ustawienia powiązań?
Vanadis
@Vanadis bind-settings? Możesz wyjaśnić?
mawcsco

Odpowiedzi:

9

Artykuł WWW3 Ustawienie parametru zestawu znaków HTTP określa:

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

To definiuje się Content-Typejako puste charset.

Wiem, że już się dowiedziałeś, że to rzeczywiście jest problem, więc źródłem problemu jest bardzo niewyobrażalne programowanie przez Microsoft lub jakiegoś pośrednika proxy.

harrymc
źródło
1) Korzystanie z nazwy komputera nie naprawia sytuacji. 2) Użyłem już Fiddlera i zamieściłem wyniki w moim poście. 3) Wireshark + pcap nie może przechwytywać na localhost. Użyłem RawCap + Wireshark, a wyniki były identyczne jak Fiddler.
mawcsco
Przez identyczne miałem na myśli, że zdekodowane pakiety wyglądały prawie tak samo.
mawcsco
Nie poddałem się Fiddlerowi. Działa dobrze i otrzymuję te same „wyniki”: Chrome, Firefox, Opera łączą się dobrze, IE nie. Opublikowałem surową, zdekodowaną odpowiedź na żądanie i wszystko wygląda normalnie / poprawnie, a mimo to IE nie wyświetla strony.
mawcsco
Co to za rada? Próbowałem już nazwy maszyny. Mój post tak mówi. Certyfikat główny Fiddler jest potrzebny tylko do nawiązywania połączeń SSL; Nie potrzebuję tego (i nie widzę, jak to by nawet pomogło.) Już próbowałem Wireshark, nie ujawnia nic nowego. Fiddler z powodzeniem wykazał, że żądanie / odpowiedź serwera jest w porządku, co wydedukowałem, widząc, że każda inna przeglądarka działa poprawnie. TYLKO IE zachowuje się inaczej.
mawcsco
Tak, „chwytanie się słomek” właśnie tak się czuje. Jestem na granicy rozumu. Kontrola konta użytkownika jest już wyłączona, bez pomocy. Patrzę na problem z charset space, ale nie mam pojęcia, w jaki sposób zamierzam z tym zrobić. Patrzę na to.
mawcsco
3

Prawdopodobnie występuje problem w ustawieniach przeglądarki IE.

Najłatwiejszym sposobem na rozwiązanie tego problemu jest otwarcie opcji internetowych, przejście do zakładki zaawansowane i kliknięcie „Resetuj ustawienia Internet Explorera”. Upewnij się, że to wybierasz, a nie „Resetuj ustawienia zaawansowane”, ponieważ to nie obejmuje WSZYSTKICH ustawień.

Jeśli to nie zadziała, spróbuj także nawigować przy użyciu 127.0.0.1 zamiast localhost. Prawdopodobnie nie rozwiąże to problemu, ale może czasem spowodować problem.

Edycja: Chciałem dodać, że może to być problem z IE11. Wiem, że mieliśmy z tym wiele problemów ze zgodnością. Jeśli nie chcesz przywracać wersji IE10 i spróbować, zawsze możesz emulować z rejestru:

Pod

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

utworzysz klucz o nazwie:

FEATURE_BROWSER_EMULATION

i w nim utwórz wartość DWORD:

iexplorer.exe

o wartości jednego z poniższych:

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

Odnieśliśmy największy sukces z 10001.

WreithKassan
źródło
Przetestowałem to już na kilku komputerach, z których kilka miało „świeżą” instalację systemu Windows i IE.
mawcsco
Czy korzystasz z IE z wyłączonymi dodatkami? Wiem, że powiedziałeś, że to była nowa instalacja, ale czasami jest zapakowana z wzdęciem.
WreithKassan
Ponownie świeża instalacja systemu Windows i IE. Brak zainstalowanych dodatków.
mawcsco
Mój oryginalny post mówi już, że próbowałem 127.0.0.1. Spróbuję sztuczki „emulacji”.
mawcsco
Ok, żadna z wartości emulacji przeglądarki w tej odpowiedzi nie działa.
mawcsco
1

Sprawdź ustawienia proxy. Ponieważ jesteś w sieci firmowej, ktoś może mieć nieodpowiednią politykę proxy wrzuconą do twojej IE (która niekoniecznie będzie dublować się w innych przeglądarkach).

Xavier J
źródło
Zdecydowanie nie ma tu proxy. Nie korzystamy nawet z NAT. Zaktualizowałem odpowiednio moje pytanie.
mawcsco
To powiedziawszy, podłącz przeglądarkę za pomocą Fiddlera i zobacz, co może się dziać pod maską. Wypróbuj niektóre działające witryny, a następnie spróbuj localhost i obserwuj wyświetlanie ruchu. Najlepsze, co mogę polecić. fiddler2.com
Xavier J
Więc Fiddler wprowadza proxy. Teraz w IE widzę: „Serwer proxy nie odpowiada”. Jednak żądanie / odpowiedź w Fiddler pokazują, że wszystko jest w porządku. Serwer odpowiedział oczekiwanymi nagłówkami i treścią HTML. Ale tego nie widzę w IE.
mawcsco
-1

Wprowadzam te zmiany i wszystko działa dobrze w systemie Windows 10 64 bity.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

użytkownik728452
źródło
1
Nie sądzę, że to rozwiąże problem OP - co zostało potwierdzone jako źle sformułowana odpowiedź HTTP typu Cntent.
DavidPostill