问题表述
- 现在的现象是 用户进入a.xxx.com域名之后,这个域名下会发起一个请求,这个请求是走到网关接口中请求数据,此时,网关接口没有获取到session,认为未登录,所以返回未登录状态码,xxx接受到状态码跳转到passeport登录,但是进入passeport登录页面之后,passeport获取到了session,认为已登录,又跳转回了xxx
- 所以问题就在于,明明已经登录,但是网关接口没有获取到session
- 我们找了网关负责人来看,他看了抓包信息,他说请求里面没有携带上session,这个session是通过请求时候定的一个值传过去的
- 前端发送请求的时候会打开 一个值,有了这个值就会可以不同域名访问session
问题原因
其实这个问题发生是由于虽然h5允许跨域了可以共享cookie,但是客户端没有允许跨域,获取不到cookie,所以出现上面的问题。
解决方案
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.setAcceptThirdPartyCookies(mWvCustom, true);//TODO 跨域cookie读取
}
简述:
LOLLIPOP(21)及以上,默认不允许跨域访问cookie信息,因此设置为true即可。
参考文章:https://blog.csdn.net/denglusha737/article/details/83684488