2009-01-27 93 views
6

我有簡單的PHP應用程序,它適用於除IE8 beta 2以外的所有瀏覽器,當我嘗試使用Ajax調用(jQuery post方法)更新表字段時出現問題。使用IE8調試器,我發現IE8不會發送會話cookie,因此php腳本重定向到登錄頁面而不是執行請求的操作。Internet Explorer 8不通過AJAX請求會話cookie

我能做些什麼來完成這項工作。

編輯: 我沒有提到,我使用的代碼點火器,所以我已經解決了這個問題,通過替換代碼點火器默認會話實施本地。代碼點火器默認會話實現使用cookie來存儲所有數據。

+0

難道IE 8發正常請求上的Cookie? – Gumbo 2009-03-04 17:54:15

+0

正常請求工作正常,但在ajax請求清除cookie後。 – 2009-03-05 10:41:36

回答

-3

作爲一種解決方法,您可以將SessionID作爲參數嵌入到uri中。

請參閱php手冊中的passing session id

5

我自己沒有IE8,但是您的cookie可能被Internet Explorer奇怪的安全策略阻止。一種可能的解決方法是使用P3P(這也是獲取在IFRAME中工作的cookie的方法)。

生成正確的P3P政策可以做一些工作,但你應該能夠找到在http://www.p3ptoolbox.org/

0

我曾在IE8 RC1的同樣的問題,你需要的信息:)

1用戶轉到登錄頁面並設置空白會話cookie
2)用戶登錄並設置了驗證的會話cookie,javascript打開一個新窗口並關閉當前窗口。
3)新窗口打開幷包含一個空白的會話cookie。
4)用戶被重定向到登錄頁面

我改變了第1步,以便空白cookie沒有設置 - 我只發送會話cookie,如果它被驗證。這爲我解決了這個問題。

0

我無法讓IE8使用SSL證書(PK12)文件作爲授權手段。如果我想在授予訪問權限之前保護目錄並強制瀏覽器中存在匹配的Web證書,它適用於IE7和所有版本的Mozilla - 只是不是IE8。它使我妻子的聽寫系統變得毫無用處。我注意到的另一件事是,當它設置PHPSESSID cookie時,它將域列爲.net而不是mydomain.net。

8

昨天我有類似的問題,發現解決方案。我希望這也能幫助別人。

問題:假設有一個網站www.somewebsite.com和裏面IFRAME whcih從我的服務器加載PHP文件,www.myserver.com/welcome.php。網站加載成功,以及我的歡迎頁面,它顯示了「Hello Bob」之類的東西,所以它成功找到了用戶並登錄了他。

之後,我的JavaScript正在調用另一個PHP文件的AJAX調用,處於「未經授權」狀態,因此SESSION數據完全丟失。頁面刷新後,一切工作正常。這隻發生在IE8下!

我認爲問題在於發送會話cookie到服務器,但是當我安裝Fiddler時,我發現IE8正確地發送了cookies以及PHPSESSID,但服務器有點無法檢測到正確的SESSION對象。另一個奇怪的是,第2次的服務器發送以下標題:

P3P:CP = 「IDC DSP COR ADM德維戴氏PSA PSD IVAi IVDI CONI他對我們IND CNT」

,但第一次沒有。在PHP腳本中手動添加該標題後,所有事情都像一個魅力!

然後,當我用Google搜索的是「P3P胡言亂語」,我發現下面的網站:

http://adamyoung.net/IE-Blocking-iFrame-Cookies

結論:確保您要發送每一個設置一個cookie首頁的頁眉。

這是不是不僅關係到IE8 + PHP組合,同樣的問題在IE8 +的情況下,ASP.NETIE8 + JSP情況等

相關問題