IE浏览器不适用于本地主机+端口


25

我出于开发目的在本地计算机上运行了NodeJS服务器。默认情况下,它使用端口1337。(我尝试了其他一些端口,例如8080、1234、9000、9090、65432等)。

我可以从Chrome,Firefox和Opera成功连接到此NodeJS服务器。但是,当我尝试连接Internet Explorer 11时,看到“无法显示此页面”(参见图像)。

在此处输入图片说明

我尝试了各种“解决方案”,并在此站点上查看了一些问题/答案。他们都没有工作。包含:

  • 我尝试了127.0.0.1
  • 我已禁用“保护模式”和“增强保护模式”。
  • 我已将“ localhost”添加到Intranet区域和Trusted区域。
  • 我已禁用“友好的HTTP消息”,以希望查看更多详细信息。
  • 我尝试使用我的计算机名称和DNS名称。
  • 我尝试使用我的IPv4地址在主机文件中为“ localhost”甚至“ thisismyfrigginpc”创建一个手动条目。

我唯一获得的成功是服务器在端口80(http://localhost:80/http://localhost)上运行。但是,由于多种原因,我无法在端口80上进行开发。我需要在localhost + port(某些端口,除80和443以外的任何端口)上测试我的代码。

没有帮助的问题和答案:

请帮忙!

顺便说一句,运行Windows 7 Enterprise 64位。公司部署,但我拥有管理员权限。网络配置是非常标准的DHCP,没有NAT也没有代理。

更新

根据@codenoire的建议,我安装了Fiddler以查看请求/响应。以下是IE-to-Fiddler-to-server-to-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

我已经在带有IE 11的“干净”非公司Windows 7安装上测试了这种情况。结果与我的常规观察相同。这意味着可以消除Windows的公司映像进行的任何配置。而且,网络配置相当“原始”。

更新2014-01-21

我已经尝试过Internet Explorer的“模拟”想法。我创建了一个键“ iexplorer.exe”作为DWORD和QWORD值(分别)以及这些值8000, 8001, 9000, 9001, 10000, and 10001。每次之后,重新启动并再次测试。所有这些尝试都产生了相同的结果。顺便说一句,我们需要在IE11中测试此代码。从长远来看,各种兼容性代码和技巧实际上对我们没有帮助。

更新2014-01-22

在端口1337上启动XAMPP Apache服务器。IE可以很好地连接到它。因此,IE不喜欢NodeJS响应,而其他浏览器似乎处理得很好。我们将研究我们的NodeJS代码,以查看标头/内容中到底发生了什么,以查看是否有任何异常。

2014年1月27日更新:解决方案

我只想记录结果。原始响应包括Content-Type :text/html;charset=utf-8,根据正确答案,它应该是:Content-Type: text/html; charset=utf-8Type和charset之间有一个空格。

结果如下:

在此处输入图片说明

原始回应:

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
为屏幕截图投票。
Oxymoron 2014年

首先,撤消您尝试过的大多数内容,尤其是Intranet区域中的添加内容。如果要将其添加到区域中,请使用“受信任的站点”。
Frank Thomas

@FrankThomas感谢您提醒我。我确实尝试过,但没有成功。我已经编辑了我的问题以反映这一点。
mawcsco 2014年

您能发布您的绑定设置吗?
Vanadis 2014年

@Vanadis绑定设置?你能澄清一下吗?
mawcsco 2014年

Answers:


9

WWW3文章“ 设置HTTP字符集参数”指定:

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

这定义Content-Type为在之前有一个空格charset

我知道您已经发现这确实是问题所在,因此问题的根源是Microsoft或某些中间人代理进行的一些非常缺乏想象力的编程。


1)使用机器名称不能解决问题。2)我已经使用过Fiddler,并将结果包括在我的帖子中。3)Wireshark + pcap无法在本地主机上捕获。我使用了RawCap + Wireshark,结果与Fiddler相同。
mawcsco 2014年

同样,我的意思是解码的数据包看起来几乎一样。
mawcsco 2014年

我还没有“放弃”提琴手。它工作正常,并且我得到相同的“结果”:Chrome,Firefox,Opera连接正常,IE则不行。我已经发布了原始的,解码后的请求响应,并且一切看起来都正常/正确,但是IE无法显示该页面。
mawcsco 2014年

那是什么建议?我已经尝试过机器名称。我的帖子是这样说的。Fiddler根证书仅用于建立SSL连接。我不需要这样做(而且我看不出这有什么帮助。)我已经尝试过Wireshark,它没有发现任何新内容。Fiddler成功地表明服务器的请求/响应是正确的,这是我看到其他所有浏览器都正常运行时得出的。只有IE的行为有所不同。
mawcsco 2014年

是的,“抓稻草”正是这种感觉。我机智。UAC已被禁用,那里没有帮助。我正在研究字符集空间问题,但我不知道该如何处理。我正在调查。
mawcsco 2014年

3

IE的设置中可能存在问题。

解决此问题的最简单方法是打开“ Internet选项”,转到“高级”选项卡,然后单击“重置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 2014年

您是否在禁用插件的情况下运行IE?我知道您说的是全新安装,但有时确实预装了膨胀。
WreithKassan 2014年

同样,重新安装Windows和IE。没有安装附加组件。
mawcsco 2014年

我的原始帖子已经指出我已经尝试了127.0.0.1。我将尝试“模拟”技巧。
mawcsco 2014年

好的,此答案中的浏览器仿真值均无效。
mawcsco

1

检查您的代理设置。由于您在公司网络上,因此某人可能将不适当的代理策略推到您的IE中(不一定会映射到其他浏览器)。


绝对没有代理在这里进行。我们甚至不使用NAT。相应地更新了我的问题。
mawcsco 2014年

就是说,将您的浏览器与Fiddler连接起来,看看幕后可能会发生什么。尝试一些有效的站点,然后尝试localhost并查看流量显示。我可以推荐的最好的。fiddler2.com
Xavier J

因此,Fiddler引入了代理。现在,在IE中,我看到:“代理服务器没有响应。” 但是,Fiddler中的请求/响应表明一切正常。服务器以预期的标题和HTML内容作为响应。但是,那不是我在IE中看到的。
mawcsco 2014年

-1

我进行了更改,并且在Windows 10 64位上都可以正常工作。

在此处输入图片说明

在此处输入图片说明


1
我认为这不会解决OP的问题-已确认这是格式错误的Cntent-Type HTTP响应。
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.