2012-04-01 81 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是垃圾。称这是一个巧合,但对我来说,这再一次证明了苹果公司无力开发优秀软件的年代久远。