2010-08-11 84 views
0

我向瀏覽器發送2個cookie。一個是瀏覽器標識符,在一年內到期,另一個是沒有到期的會話跟蹤器。新的請求的響應標題看起來像這樣IE 6,7和8中缺少cookie

HTTP/1.1 200 OK 
Content-Type: text/html; charset=utf-8 
X-XSS-Protection: 0 
ETag: "b502a27282a5c621f34d522c3fcc8e3e" 
Set-Cookie: bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3NlchimigcM; expires=Fri, 12-Aug-2011 05:21:55 GMT; Path=/ 
Set-Cookie: rid=1281569589; Path=/about 
Expires: Wed, 11 Aug 2010 23:33:09 GMT 
Cache-Control: private, max-age=345600 
Date: Wed, 11 Aug 2010 23:33:09 GMT 

我想從頁面上的JavaScript訪問這兩個cookie。

在Firefox和Chrome的document.cookie給了我這個

"rid=1281568223; bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM" 

在IE6,IE7,IE8的document.cookie只給了我這個

"bid=ahFmaXJld29ya3Njb21wdXRlcnIPCxIHQnJvd3Nlchj2nAYM" 

是我擺脫 '路徑' 屬性拋棄IE瀏覽器的cookie還是失效的失效日期(我認爲它應該是可選的)?我認爲這不是事實,我設置了超過1個cookie,因爲這是一直做的。

+0

將'path'屬性設置回'/'後,我能夠讀取'rid'cookie。然而,這不是我真正想要的解決方案。 IE不支持cookie的'路徑'屬性嗎? – 2010-08-12 06:53:54

+0

您是否在以/ about開頭的URL上看到此行爲?該路徑告訴瀏覽器該cookie僅適用於頁面/ about或其下的頁面,如/ about/us。當您將路徑更改爲/該Cookie適用於網站上的所有頁面時。 – Kwebble 2010-08-12 15:41:51

+0

我正在使用的JavaScript(document.cookie)位於www.example.com/about頁面上。我還使用'路徑'屬性向其他頁面發送cookie,在IE瀏覽器上的結果相同。這可能是一個緩存問題? – 2010-08-12 17:20:28

回答

-1

我也有類似的問題與IE瀏覽器。我設置了三個沒有路徑的cookie(所以假設爲「/」)。我在自己的機器上開着一個開發環境。當我打開頁面爲http://localhost/page.aspx時,我得到了預期的結果,並且我的javascript可以找到cookie,但是,如果我加載了與http://mymachine.mydomain.com/page.aspx相同的頁面,我可以觀察(在調試器中)同樣的三個cookie被添加到響應中,但當我到達尋找它們的javascript函數時,我所有的cookie都是空的。不用說,這在FireFox上可以正常工作。

3

IE瀏覽器將只允許如果你是你訪問這些Cookie在子目錄中!因此,如果您將Cookie的路徑設置爲/ about,並且您的頁面實際上是/ about,那麼您將無法訪問它。

這麼看來IE瀏覽器,你可以在頁面上訪問該cookie下/左右喜歡/ /我們而不是一個網頁,是/約本身。去圖:/

0

亞歷克西斯和裏士我覺得有這個地方。這是網絡上唯一的地方我已經找到了關於IE如何使用路徑處理cookie的信息。什麼球疼! IE再次襲擊。

順便說一句,至少在IE 11中,它會在完整路徑上執行「開始」比較,因此可以在'/ about'頁面上訪問設置路徑爲'/ abou'的cookie。雖然在我目前的項目中,但這並不令人感到安慰,因爲我無法做出這樣的假設,即從路徑的末端取走一個字符將可靠地識別站點中的唯一路徑。