NutzCN Logo
问答 Safari不能保存session,每创建一个新的页面就会创建新的session,就登陆不了
发布于 2854天前 作者 shusheng 3125 次浏览 复制 上一个帖子 下一个帖子
标签: safari

Safari不能保存session,每创建一个新的页面就会创建新的session,就登陆不了
有没有人解决过类似问题?

8 回复

发送请求的时候 地址中加上 ;jessionid=xxxx

能说的具体一些吗?

比如 你的请求地址

http://xxx.com/login

那需要这样

http://xxx.com/login;jsessionid=********

这个jessionid 是后端返回给你的

隐身模式,或者禁用了cookie 吧

不是 是Safari浏览器确实有这个bug 而且 不是所有的版本都有
以前做游戏的时候 遇到过这个问题

用后端返回的jsessionid可以获得到session吗

解决方案
老的代码是:

HttpSession session = Mvcs.getHttpSession(false);
		if (session == null) {
			re.setv("msg", "session已过期");
			String temp = head+Json.toJson(re, JsonFormat.compact())+tail;
			return temp;
		}

新的代码是:

HttpSession session = request.getSession();
		if (request.getParameter("JSESSIONID") != null) {
		    Cookie userCookie = new Cookie("JSESSIONID", request.getParameter("JSESSIONID"));
		    response.addCookie(userCookie);
		} else {
		    String sessionId = session.getId();
		    Cookie userCookie = new Cookie("JSESSIONID", sessionId);
		    response.addCookie(userCookie);
		}
		// session是否有效
//		HttpSession session = Mvcs.getHttpSession(false);
		if (session == null) {
			re.setv("msg", "session已过期");
			String temp = head+Json.toJson(re, JsonFormat.compact())+tail;
			return temp;
		}
添加回复
请先登陆
回到顶部