我遇到了一個奇怪的問題,它正在正確發送和接收Cookie,但在Internet Explorer中無法訪問JavaScript。 Chrome,Firefox,Opera和Safari JavaScript很好。在請求Cookie中發送Cookie Cookie,但在IE中不存在JavaScript的document.cookie
郵政 「http://wp.abc.example.com/content/sv2.cgi?id=1234」,響應集餅乾,發出302重定向:
HTTP/1.0 302 Moved Temporarily Location: http://members.abc.example.com/abc/members/0912/07/news01.html Set-Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ; Set-Cookie: LEADENDDATE=20091218; expires=Tue Feb 16 09:33:03 2010 GMT; path=/abc/members/0912/07/news01.html; domain=abc.example.com; ;
瀏覽器請求的目標頁面,包括剛纔發送的cookie。
GET /abc/members/0912/07/news01.html HTTP/1.1 Cookie: AID=1495763b4fc6d5f4290e2074ab1092f7; LEADENDDATE=20091218; Host: members.abc.example.com
運行「javascript:alert(document.cookie);」在瀏覽器地址欄中。
在IE和IE瀏覽器上,cookies不在那裏。其他瀏覽器都很好。這是IE6,7真,和8
所以,
的 「wp.abc.example.com」 上 「abc.example.com」,這是設置一個cookie通過「members.abc.example.com」的請求發送到服務器,但該頁面上的JavaScript不可見。
爲什麼?
我想也許不是「abc.example.com」,應該在「.abc.example.com」上設置cookie以允許子域匹配,但即使如此,它也會在「members.abc.example」中發送。 com「請求標題。
基本上它充當雖然「的HttpOnly」被設置在該cookie,即使從上面所示的Set-Cookie頭例如,不包括該標記。額外的「;」也許會有一些影響?
謝謝!我們最終爲自己弄明白了這一點,但很高興看到它作爲已知錯誤的寫法。 MSDN在cookie處理細節上基本沒用。是否有任何有關此問題的Microsoft文檔,您知道嗎? – ryandenki 2009-12-24 04:01:26
實際上,在我們的情況下,我們確實需要將Cookie作爲頁面特定的,而不僅僅是路徑。當然這只是一個可怕的解決方法,用於禁止在沒有我們公司網站的URL中使用查詢參數的奇怪策略: http://stackoverflow.com/questions/1956641/any-justification-for-a-policy-that-查詢參數 - 應該 - 不被使用的 – ryandenki 2009-12-24 04:17:53