2012-02-01 36 views
4

我在客户端使用JavaScript,得到navigator.userAgent返回:HTTP_USER_AGENT和navigator.userAgent不一样,有什么想法吗?

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPNTDF; .NET4.0C; .NET4.0E) 

使用C#Request.ServerVariables["HTTP_USER_AGENT"],返回:

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

正如你可以看到,它的IE :(

IE总是做这个,还是我自己? 如何获得相同的值?

PS,我甚至在本地IIS中试过,结果相同

+0

您是否得到了一个答案? – buggedcom 2012-09-27 12:38:38

+0

NO。它只是不同,在IE中。不知道为什么,特别是重新加载(不是第一次)。 – 2012-09-29 17:17:02

回答

1

Internet Explorer 9和更高版本中的用户代理字符串在HTTP请求发送的版本和通过navigator.userAgent获得的版本之间几乎总是不同的。这是因为字符串中所谓的特征标记。这样做的背景是这里解释:http://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx

从MSDN文档:Internet Explorer中的

早期版本包括使用用户代理的前期整理平台和后平台键部分定义的特征标记字符串在HTTP协商过程中。随着时间的推移,这会导致用户代理字符串过长,从而导致某些Web服务器出现问题。当用户代理字符串长于256个字符时,通常会出现问题。从Internet Explorer 9开始,在HTTP协商期间,用户代理字符串不再包含功能标记。特征标记包含在导航器对象的userAgent属性返回的值中。依赖于早期行为的应用程序应该相应地进行修改。

你必须决定你想在你的应用程序中使用一个。没有办法“同步”它们。通过Javascript获得的应包含更多信息...

相关问题