张佳美的专栏

是个人的日常小经验

safari浏览器 session tomcat服务器

今天遇到一个问题,苹果的safari浏览器访问,存储不了session,查了一些资料,说是safari浏览器每一次请求都会创建一个新的session,我当时就震惊了额, 

那怎么办,和经理聊了一下我们的访问方式之后解决了。

简单和大家介绍一下背景,我们是页面书写人员在本地起了一个服务,页面通过js的ajax发送jsonp跨域的请求来访问测试服务器的接口,

在这种情况下,浏览器发送请求访问两个接口(A,B),A接口像手机发送一个验证码,并把验证码存放session中,此时在A中是可以取出session值的;但是在

浏览器访问接口B时,就取不出来session值了。

这么一来我的直觉告诉我,这是浏览器的问题,因为我用安卓都没有问题,但是苹果确有问题,最终确定和浏览器没有关系。

因为页面在本地起的服务,访问在另一台服务器的接口服务,这样的话,就像两个session容器罐子,页面的session在1号罐子里,而另一台服务器上的sesion在2号

罐子里,这样当浏览器访问访问2号罐子时,我们就发现当我们从1号罐子发来的request中取session时,就会取不到session了。因为页面所在的服务器和另一台

服务器中session是两个不同的概念。

解决方案:

1.将页面放在接口服务下放在同一个服务器下。

2.使用redis等做session的共享(可能这个说法不是很准确,希望大家可以见谅)。

阅读更多
个人分类: 浏览器 java
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

safari浏览器 session tomcat服务器

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭