2012-02-01 55 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獲得的應包含更多信息...

相關問題