У меня есть сервер 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).
Вопросы и ответы, которые не помогают:
- Почему я не могу зайти на http://localhost через IE?
- Chrome и Firefox могут связаться с localhost; Internet Explorer 9 не может. Зачем?
- Как проверить локальные сайты в Metro IE10?
- https://stackoverflow.com/questions/19268956/can-not-access-localhostport
Пожалуйста помоги!
Кстати, под управлением 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
Запустил сервер Apache XAMPP на порту 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 за раскрытие ответа.