IE не працює з localhost + портом


25

У мене для розробки працює сервер NodeJS на моїй локальній машині. За замовчуванням він використовує порт 1337. (Я спробував кілька інших портів, таких як 8080, 1234, 9000, 9090, 65432 та ін.).

Я можу успішно підключитися до цього сервера NodeJS з Chrome, Firefox та Opera. Але коли я намагаюся підключитися до Internet Explorer 11, я бачу "Цю сторінку не можна відобразити" (див. Зображення).

введіть тут опис зображення

Я спробував різноманітні "рішення" і переглянув кілька питань / відповідей на цьому сайті. Жоден з них не працював. У тому числі:

  • Я спробував 127.0.0.1
  • Я вимкнув "Захищений режим" та "Розширений режим захисту".
  • Я додав "localhost" до інтранет-зони та довіреної зони.
  • Я відключив "Дружні повідомлення HTTP", сподіваючись побачити більше деталей.
  • Я спробував використовувати ім’я машини та ім’я DNS.
  • Я спробував створити вручну запис у своєму файлі хостів для "localhost" і навіть "thisismyfrigginpc" за допомогою моєї IPv4 адреси.

Єдиний успіх у мене - це коли сервер працює на порту 80 ( http://localhost:80/або http://localhost). Однак я не можу розвиватися на порту 80 з різних причин. Мені потрібно перевірити свій код на localhost + порт (якийсь порт, будь-який порт, крім 80 і 443).

Питання та відповіді, які не допомагають:

Будь ласка, допоможіть!

BTW, Запуск Windows 7 Enterprise 64-розрядної. Корпоративне розгортання, але я маю права адміністратора. Конфігурація мережі - це досить стандартний DHCP, без NAT і проксі.

ОНОВЛЕННЯ

За рекомендацією від @codenoire я встановив Fiddler, щоб побачити запит / відповідь. Нижче наведено необроблений запит і відповідь від IE до Fiddler від сервера до Fiddler:

Запит

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

Відповідь

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>

Результат

введіть тут опис зображення

Оновлення 2014-01-17

Я перевіряв цей сценарій на «чистих» некорпоративних установках Windows 7 з IE 11. Результати ідентичні моїм постійним спостереженням. Це означає, що будь-яка конфігурація, зроблена за допомогою корпоративного образу Windows, може бути усунена як причина. Також конфігурація мережі є досить «ванільною».

Оновлення 2014-01-21

Я спробував ідеї "емуляції" Internet Explorer. Я створив ключ "iexplorer.exe" як значення DWORD, так і QWORD (окремо) зі значеннями 8000, 8001, 9000, 9001, 10000, and 10001. Після кожного перезавантажуємо і тестуємо знову. Усі ці спроби дали однакові результати. Як сторону нам потрібно перевірити цей код в IE11. Різні коди та хитрощі сумісності насправді не допомагають нам у довгостроковій перспективі.

Оновлення 2014-01-22

Запустив сервер XAMPP Apache на порт 1337. IE підключається до нього просто чудово. Отже, є щось у відповіді NodeJS, що IE не подобається, а інші браузери, здається, справляються добре. Ми будемо досліджувати наш код NodeJS, щоб побачити, що саме відбувається в заголовках / вмісті, щоб побачити, чи щось не відповідає.

Оновлення 2014-01-27: Постанова

Я просто хотів зафіксувати результати. Оригінальна відповідь містила Content-Type: text/html;charset=utf-8і на основі правильної відповіді вона повинна бути: Content-Type: text/html; charset=utf-8з пробілом між типом та діаграмою.

Ось результати:

введіть тут опис зображення

Сира відповідь:

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>

Дякуємо @harrymc за розкриття відповіді.


1
Голосувати за скріншоти.
Оксиморон

по-перше, скасуйте більшість речей, які ви пробували, особливо додаток до зони інтранет. якщо ви збираєтеся додати його до зони, використовуйте довірені сайти.
Френк Томас

@FrankThomas Дякую, що нагадали. Я це намагався, не маючи успіху. Я відредагував своє запитання, щоб це відобразити.
mawcsco

Чи можете ви опублікувати свої налаштування bind?
Ванадіс

@Vanadis bind-settings? Ви можете уточнити?
mawcsco

Відповіді:


9

Стаття WWW3 Налаштування параметра HTTP charset вказує:

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

Це визначає Content-Typeяк порожнє раніше charset.

Я знаю, що ви вже з’ясували, що це справді проблема, тому джерелом проблеми є дуже немислене програмування від Microsoft або якогось проксі-посередника.


1) Використання назви машини не виправляє ситуацію. 2) Я вже використав Fiddler і включив результати у свій пост. 3) Wireshark + pcap не може захопити на localhost. Я використовував RawCap + Wireshark, і результати були ідентичними Fiddler.
mawcsco

Ідентичним я мав на увазі, що розшифровані пакети виглядали майже однаково.
mawcsco

Я не "здався" на Фіддлера. Це добре працює, і я отримую ті самі "результати": Chrome, Firefox, Opera підключаються добре, IE не робить. Я розмістив необроблену, розшифровану відповідь на запит, і все виглядає нормально / належним чином, але IE не відображає сторінку.
mawcsco

Що це за порада? Я вже спробував назву машини. Мій пост говорить про це. Fotler Root Certificate потрібен лише для встановлення SSL-з'єднань; У мене немає потреби в цьому (і я не бачу, як це навіть допоможе.) Я вже спробував Wireshark, він не відкриває нічого нового. Фіддлер успішно показав, що запит / відповідь сервера нормальний, що я вивів, побачивши, що кожен інший браузер працює нормально. ТІЛЬКИ IE поводиться інакше.
mawcsco

Так, саме так відчувається "хапання за соломинку". Я на своєму дотепному кінці. UAC вже відключений, допомоги там немає. Я розглядаю питання про простір для шаблонів, але я не маю уявлення, як я збираюся з цим пограти. Я дивлюся в це.
mawcsco

3

Можливо, у ваших налаштуваннях для IE є проблема.

Найпростішим способом виправити це було б відкрити параметри Інтернету, перейдіть на вкладку «Додаткові» та натисніть «Скинути налаштування Internet Explorer». Переконайтесь, що ви вибрали це, а не "Скинути розширені налаштування", оскільки це не включає ВСІ налаштування.

Якщо це не працює, спробуйте також перейти за допомогою 127.0.0.1 замість localhost. Це, ймовірно, не вирішить проблему, але іноді може створити проблему.

Редагувати: Я хотів би додати, що це може бути проблема з IE11. Я знаю, що у нас виникло багато проблем із сумісністю. Якщо ви не хочете відкатати на IE10 і спробувати це, ви завжди можете Емуляція з реєстру:

Під

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

ви створите ключ під назвою:

FEATURE_BROWSER_EMULATION

і всередині нього створіть значення DWORD:

iexplorer.exe

зі значенням одного з наступних:

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

Найбільше успіху ми мали з 10001.


Я вже протестував це на декількох машинах, у кількох з яких була «свіжа» установка Windows та IE.
mawcsco

Ви запускали IE з відключеними аддон? Я знаю, ви сказали, що це свіжа установка, але вона іноді приходить з упаковкою.
WreithKassan

Знову свіжа установка Windows та IE. Не встановлено додатків.
mawcsco

У моєму початковому дописі вже вказано, що я спробував 127.0.0.1. Я спробую трюк "емуляція".
mawcsco

Гаразд, жодне значення емуляції браузера в цій відповіді не працює.
mawcsco

1

Перевірте свої настройки проксі. Оскільки ви перебуваєте у корпоративної мережі, хтось може мати неадекватну політику проксі-сервера, внесену до вашого IE (це не обов'язково відображатиметься для інших браузерів).


Тут точно не відбувається жодного проксі. Ми навіть не використовуємо NAT. Відповідно оновив моє запитання.
mawcsco

Однак, підключіть браузер до Fiddler і подивіться, що може статися під кришкою. Спробуйте деякі сайти, які працюють, а потім спробуйте localhost і дивіться показ трафіку. Найкраще, що можу порекомендувати. fiddler2.com
Xavier J

Отже, Фіддлер представляє проксі. Тепер у IE я бачу: "Проксі-сервер не відповідає". Однак запит / відповідь у Fiddler показують, що все нормально. Сервер відповів очікуваними заголовками та вмістом HTML. Але це не те, що я бачу в IE.
mawcsco

-1

Я вношу ці зміни, і все працює на Windows 10 64 біт.

введіть тут опис зображення

введіть тут опис зображення


1
Я не думаю, що це вирішить проблему з ОП - що було підтверджено неправильною відповіддю HTTP типу Cntent.
DavidPostill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.