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 за раскрытие ответа.


1
Проголосуйте за скриншоты.
— Оксюморон

Прежде всего, отмените большую часть того, что вы пробовали, особенно добавление в зону Интранет. если вы собираетесь добавить его в зону, используйте надежные сайты.
— Фрэнк Томас

@FrankThomas Спасибо, что напомнили мне. Я попробовал это безуспешно. Я отредактировал свой вопрос, чтобы отразить это.
— mawcsco

Не могли бы вы опубликовать свои настройки bind?
— Ванадис

@ Ванадис bind-настройки? Вы можете уточнить?
— mawcsco

Ответы:


9

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

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

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

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


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.


Я уже проверял это на нескольких машинах, на некоторых из которых была установлена ​​«свежая» установка 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 бит.

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

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


1
Я не думаю, что это решит проблему OPs - которая была подтверждена как неправильный HTTP-ответ Cntent-Type.
— DavidPostill
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.