【问题解决】Safari不能保存session的处理方法

来源:互联网 发布:mac flash插件错误 编辑:程序博客网 时间:2024/05/01 02:26

我们的项目是一个单页应用,前端去访问服务器获取JSON数据,然后填充页面进行渲染,在Webkit上运行正常,但在Safari上就出现了问题,在Safari上登录的时候一直提示验证码错误,并且这是一个很麻烦的问题,因为只有将应用部署到远程服务器上才出现这个问题,本地测试是正常的。

经过仔细的排查错误后,检测出是因为我们获取验证码时发起了一次Ajax连接,然后验证码存储在了session里,接着验证时又发起了一次Ajax连接,因为Safari不保存cookie,所以有两个session,这样自然验证码就是错的了。

问题找到了,就开始着手找解决办法,最开始找到了一个,就是设置Safari可以保存cookie,我试了一下后,发现的确可以登录,证明问题找对了,但很明显,这个方法不合适,因为我们不能要求每一个用户都去设置他们的浏览器。于是开始找其他办法,最终在stackoverflow上找到了一个,

将服务器的IP地址改为域名

简单得难以置信,具体地解释可以看这里

通过这个方法我们总算解决了这个问题,如果这样都没有解决,可以尝试在第一次获取session的时候返回session的ID,第二次访问时把ID传过去,但这样就有点不安全了。希望能对你有所帮助。

1 0
原创粉丝点击