IE не работает с портом localhost +

25

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

Я могу успешно подключиться к этому серверу NodeJS из Chrome, Firefox и Opera. Но, когда я пытаюсь соединиться с Internet Explorer 11, я вижу «Эта страница не может быть отображена» (см. Изображение).

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

Я испробовал множество «решений» и просмотрел несколько вопросов / ответов на этом сайте. Никто из них не работал. В том числе:

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

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

Вопросы и ответы, которые не помогают:

Пожалуйста помоги!

Кстати, под управлением Windows 7 Enterprise 64-bit. Корпоративное развертывание, но у меня есть права администратора. Конфигурация сети довольно стандартная DHCP без NAT и прокси.

ОБНОВИТЬ

По рекомендации @codenoire я установил Fiddler, чтобы увидеть запрос / ответ. Ниже приведены необработанные запросы и ответы IE-to-Fiddler-to-server-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 за раскрытие ответа.

mawcsco
источник
1
Проголосуйте за скриншоты.
Оксюморон
Прежде всего, отмените большую часть того, что вы пробовали, особенно добавление в зону Интранет. если вы собираетесь добавить его в зону, используйте надежные сайты.
Фрэнк Томас
@FrankThomas Спасибо, что напомнили мне. Я попробовал это безуспешно. Я отредактировал свой вопрос, чтобы отразить это.
mawcsco
Не могли бы вы опубликовать свои настройки bind?
Ванадис
@ Ванадис bind-настройки? Вы можете уточнить?
mawcsco

Ответы:

9

Статья WWW3 Установка параметра charset HTTP указывает:

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

Это определяет Content-Typeкак наличие пробела раньше charset.

Я знаю, что вы уже узнали, что это действительно проблема, поэтому источником проблемы является какое-то очень невообразимое программирование Microsoft или неким посредником.

harrymc
источник
1) Использование имени машины не исправляет ситуацию. 2) Я уже использовал Fiddler и включил результаты в свой пост. 3) Wireshark + pcap не может захватить на локальном хосте. Я использовал RawCap + Wireshark, и результаты были идентичны Fiddler.
mawcsco
Под идентичным я имел в виду, что декодированные пакеты выглядели почти одинаково.
mawcsco
Я не "сдался" на Fiddler. Он работает нормально, и я получаю те же "результаты": Chrome, Firefox, Opera нормально подключаются, IE нет. Я разместил сырой, декодированный ответ на запрос, и все выглядит нормально / правильно, но IE не может отобразить страницу.
mawcsco
Какой это совет? Я уже попробовал название машины. Мой пост говорит это. Корневой сертификат Fiddler необходим только для установления SSL-соединений; Мне это не нужно (и я не понимаю, как это могло бы помочь). Я уже пробовал Wireshark, ничего нового не видно. Fiddler успешно показал, что запрос / ответ сервера в порядке, что я понял, увидев, что все остальные браузеры работают нормально. ТОЛЬКО 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.

WreithKassan
источник
Я уже проверял это на нескольких машинах, на некоторых из которых была установлена ​​«свежая» установка Windows и IE.
mawcsco
Вы запускали IE с отключенными надстройками? Я знаю, что вы сказали, что это была свежая установка, но иногда она поставляется в разложенном виде.
WreithKassan
Опять свежая установка Windows и IE. Дополнения не установлены.
mawcsco
Мой оригинальный пост уже утверждает, что я пробовал 127.0.0.1. Я попробую трюк "эмуляции".
mawcsco
Хорошо, ни одно из значений эмуляции браузера в этом ответе не работает.
mawcsco
1

Проверьте настройки прокси. Поскольку вы находитесь в корпоративной сети, кто-то может иметь неадекватную политику прокси-сервера, вставленную в ваш IE (это не обязательно будет отражать другие браузеры).

Ксавье Дж
источник
Определенно никакой прокси здесь не происходит. Мы даже не используем NAT. Обновил мой вопрос соответственно.
mawcsco
Тем не менее, подключите ваш браузер с Fiddler и посмотрите, что может происходить под капотом. Попробуйте несколько сайтов, которые работают, затем попробуйте localhost и наблюдайте за отображением трафика. Лучшее, что я могу порекомендовать. fiddler2.com
Ксавье Дж
Итак, Fiddler представляет прокси. Теперь в IE я вижу: «Прокси-сервер не отвечает». Тем не менее, запрос / ответ в Fiddler показывают, что все в порядке. Сервер ответил ожидаемыми заголовками и HTML-контентом. Но это не то, что я вижу в IE.
mawcsco
-1

Я делаю это изменения, и все отлично работает на Windows 10 64 бит.

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

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

user728452
источник
1
Я не думаю, что это решит проблему OPs - которая была подтверждена как неправильный HTTP-ответ Cntent-Type.
DavidPostill