我遇到了用戶登錄到NTLM(通過localhost:8585/test.ntlm)並且瀏覽器試圖通過cometD進行握手的問題。這適用於除IE8 ON WinXP(與Win7上的IE8一起使用)之外的每個瀏覽器。IE8 NTLM Ajax否「Content-Length:0」Post cometD Fiddler
當IE8認爲它正在通過NTLM頁面時,似乎發生了許多人說的事情,它不會發送響應主體,因爲它預計會發生401錯誤。但是,授權從登錄時發生,當提示訪問/test.ntlm頁面時。我已經使用Fiddler來實際查看IE8的請求標頭,奇怪的部分是當fiddler實際上處於完全正常狀態時,在服務器上看到的請求標頭與它們在fiddler不在時不同。
IE8使用Fiddler
[Accept][text/javascript, text/html, application/xml, text/xml, */*]
[Accept-Language][en-us]
[x-prototype-version][1.6.0.2]
[Referer][http://nldo-82-2.eur.ad.sag:8585/test.ntlm]
[x-requested-with][XMLHttpRequest]
[Content-Type][application/json; charset=UTF-8]
[Accept-Encoding][gzip, deflate]
[User-Agent][Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)]
[Host][nldo-82-2.eur.ad.sag:8585]
[Content-Length][0]
[Connection][Keep-Alive]
[Cache-Control][no-cache] -- Only added in IE
[Cookie][JSESSIONID=1ckx2gei602sg]
[Authorization][NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFAs4OAAAADw==] --Only happens in IE8 when Fiddler isn't on
IE8使用Fiddler
[Accept][text/javascript, text/html, application/xml, text/xml, */*]
[Accept-Language][en-us]
[x-prototype-version][1.6.0.2]
[Referer][http://nldo-82-2.eur.ad.sag:8585/test.ntlm]
[x-requested-with][XMLHttpRequest]
[Content-Type][application/json; charset=UTF-8]
[Accept-Encoding][gzip, deflate]
[User-Agent][Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)]
[Host][nldo-82-2.eur.ad.sag:8585]
[Content-Length][177]
[Connection][Keep-Alive]
[Pragma][no-cache]
[Cookie][JSESSIONID=1qpdgov0w07pf]
正如我們可以看到的最大區別在於,IE8 W/O型的Fiddler具有由瀏覽器作爲添加的授權首標盡我所知。
我不知道該做什麼,我嘗試了很多在其他stackoverflow主題中列出的MS修補程序,但沒有一個似乎能夠正常工作。儘管瀏覽器仍然期待401發送響應主體,但我也試圖返回一個401,儘管如此,這也沒有奏效。奇怪的是,它在IE8 for Win7中完美工作,但不是WinXP版本。請注意,Win7的瀏覽器版本爲8.0.7601.17514,WinXP的瀏覽器版本爲8.0.6001.18702。
任何和所有的建議將受到歡迎。
更改爲GET方法的問題是cometd Longpulling僅支持POST方法。 我曾經認爲Fiddler緩存了NTLM認證,這就是爲什麼它能正常工作,但我認爲這是一個選項,你必須在運行Fiddler時專門選擇。 – Craig