2012-04-01 78 views
0

我的會話數據也有一些是嚴重錯誤在這裏。我大概100%確定確認方法會導致Safari上會話的嚴重問題。確認提示基本上要求用戶確定他/她想要在完成Jquery POST之前完成一個操作。這適用於其他瀏覽器,但在Safari上,用戶會話數據將被刪除,並在刷新頁面時被註銷。我刪除了該方法,一切都恢復正常。有誰之前經歷過這個嗎?非常奇怪... 握手在蘋果JavaScript的confirm方法殺死在Safari 5.0.2

編輯:我試過使用Jqueries對話框小部件,我遇到了同樣的問題。你覺得怎麼樣?

EDIT2:對於那些誰是好奇,警報不清除會話數據,它只是使控制返回給客戶端,因此瀏覽器是不是真的與它的服務器端的觸摸。此評論最好解釋:

當您使用ASP.NET的 時,您必須注意代碼的運行位置。在您的示例中,由於您使用的是Session 對象,因此您正在服務器上運行。您的網絡服務器無法在用戶機器上彈出警告對話框 。相反,它必須 寫JavaScript代碼到客戶端,然後可以執行該代碼 並給用戶發出警報。所以,你需要改變你的方法。如果 需要警報,則需要將信息反饋給 客戶端,並在那裏進行整個檢查,在這種情況下,您的 將無法​​訪問會話變量(存儲在服務器上),因此僅 你可以做的比較是基於那個 表單上的東西,或者你寫到客戶端機器上的東西。

參考:http://www.velocityreviews.com/forums/t65880-javascript-alert-function.html

這是荒謬地看到,像它的同行Safari瀏覽器不能自動處理這種情況。

EDIT3:更多的證據!一個快速的谷歌搜索顯示,Safari上有很多人抱怨隨機登出Facebook。 Facebook還彈出氣球警告,通知您有關重要事件,例如離開一半書面信息。每當氣球警告我時,我都會註銷。這就像Safari的一個強悍的保鏢。這裏發生了什麼?

+0

會話是服務器端的概念;它僅在具有特定名稱和價值的cookie中表現在瀏覽器中。你是否說'confirm()'調用正在清除那個cookie? – Pointy 2012-04-01 13:17:13

+0

是的,我認爲這是發生在這裏。我會仔細檢查一下會話ID是否已被清除,但我確信確認電話會以某種方式影響我的會話。 – captainspi 2012-04-01 13:26:07

+1

現在不那麼積極,什麼? – 2012-04-01 15:44:19

回答

-1

好吧,這裏的解決方案,如果你現在正在運行的Safari 5.0.5的更新! 5.0.5是垃圾。稱這是一個巧合,但對我來說,這再一次證明了蘋果公司無力開發優秀軟件的年代久遠。