IE11显示html页面的问题

时间:2014-12-29 21:19:50

标签: html internet-explorer http internet-explorer-8 internet-explorer-11

我正在将Internet Explorer版本从IE8升级到IE 11。 但是在IE11上测试我们的代码时,我们面临着一个问题。

HTTP请求之一基本上将HTML页面从服务器返回到客户端。 此请求在IE8中正常工作并正确显示网页,但是当我们从IE11启动该请求时,它在浏览器中显示网页的HTML源代码。

我尝试使用.html扩展名手动保存这些源代码(在浏览器中显示)并在本地启动。在本地启动时正确显示。这意味着从服务器返回的HTML页面是正确的,并且存在渲染问题吗?

以下是IE8和IE11中不同的HTTP标头请求和响应,通过Fiddler抓取 - >

IE 8:

请求标题:

接受:application / x-ms-application,image / jpeg,application / xaml + xml,image / gif,image / pjpeg,application / x-ms-xbap,application / vnd.ms-excel,application / vnd .ms-powerpoint,application / msword, /

User-Agent:Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1; WOW64; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)

响应标题:

Content-Type:text / plain;字符集= ISO-8859-1

IE 11:

请求标题:

接受:text / html,application / xhtml + xml, /

User-Agent:Mozilla / 5.0(Windows NT 6.1; Trident / 7.0; rv:11.0),如Gecko

响应标题: 内容类型:text / plain;字符集= ISO-8859-1

我对这一切都不熟悉,也没有采取下一步采取的措施。这是否因为浏览器无法以正确的格式接收页面而发生?由于服务器动态创建页面,更改服务器端代码有点困难。对此有什么简单的解决方案吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您的Response标头的Content-Type显示“text / plain”,它解释了显示源的原因而不是显示的源。

我相信没有别的方法可以改变你的服务器端代码,并在发送动态生成的页面时将Content-Type设置为响应的“text / html”

答案 1 :(得分:1)

使用Content-Type: text/plain,您实际上是在告诉浏览器"请将其视为纯文本" - 它只是遵循命令。

显而易见的解决方法是将内容类型强制为text/html,这应该是服务器端代码中的一个小改动。如果Web服务器是Apache,您可以使用mod_headers和.htaccess文件或某些vhost配置来强制执行此操作。如果Web服务器不是Apache,您可以使用另一个带有mod_proxy的小型Apache服务器来添加这些标头。

我非常惊讶这是对的&#39;在IE8中,你可能还会在那里触发怪癖(兼容性)模式。如果直接修复内容类型是不可行的,您可以尝试通过将以下行添加到输出的<head>部分来强制IE11在IE8模式下运行:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

然而,这是一个丑陋的解决方法,它将在Firefox,Chrome,Safari和其他符合标准的浏览器中保持不变,就像IE11一样,它们只会遵循您的订单并将内容显示为纯文本。最后他们就像你告诉他们一样。