2

我有一个 Internet 应用程序,因此 IE9 默认位于兼容性视图中。我用X-UA-Compatible国旗。我在 HTTP 标头和元标记中发送它。IE9 似乎接受它并使用 IE9 渲染引擎。但它仍然总是发送 IE-7 UserAgent 字符串。

有没有办法避免它,或者将这个 IE9 识别为非 IE7 浏览器?

我真的不想使用浏览器的白名单,而是使用不支持的浏览器(IE 5、6、7 和 8)的黑名单。

我的例子:

我正在打开页面,所以 IE9 正在发送一个 GET 请求:

GET http://myserver/mypage/ HTTP/1.1
Accept: 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, */*
Accept-Language: de-CH
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: myserver
Cookie: MAKEBROWSERTEST=true

然后,我的服务器正在回答:

HTTP/1.1 302 Found
Cache-Control: private, no-cache="Set-Cookie"
Content-Type: text/html; charset=utf-8
Location: /myserver/mypage/two
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
Set-Cookie: MAKEBROWSERTEST=true; path=/
X-UA-Compatible: IE=edge
Date: Tue, 11 Sep 2012 10:04:21 GMT
Content-Length: 152

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/myserver/mypage/two">here</a>.</h2>
</body></html>

IE9 正在重定向,但仍发送 MSIE 7.0 用户代理:

GET http://myserver/mypage/two HTTP/1.1
Accept: 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, */*
Accept-Language: de-CH
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: myserver
Cookie: MAKEBROWSERTEST=true

谢谢

4

1 回答 1

0

我不是要恢复旧线程,但如果有人遇到这个,他们可能会觉得这很有趣: Internet Explorer 11's Many User-Agent Strings

如果用户选择在兼容性视图中呈现站点(单击工具 > 兼容性视图设置),则 IE 将发送一个模仿 Internet Explorer 7 的 UA字符串的 User-Agent字符串:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C)

默认情况下,Intranet 区域中的站点在兼容性视图中呈现,因此这是他们将看到的 User-Agent 字符串。

于是我用IE9做了一个测试:

在(正常模式)你得到

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

在兼容模式下,您会得到

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
于 2015-01-16T10:05:11.780 回答