跨域session问题
session与cookie
cookie存在浏览器;session存在服务器,session基于cookie实现。
由于http无状态,所以服务端无法识别请求是否为同一用户,session就是为了解决这一问题。
session基于k-v的结构存在服务器,将k返回给浏览器存放在cookie,发送请求时带着,服务器就能知道请求是谁了。
异步请求什情况会携带cookie
同源携带;不同源由于不可读所以不会携带。
withCredentials设置为true,就会携带非同源cookie。
W3C标准CORS,解决浏览器跨域限制
后端做了跨域配置,只要浏览器支持cors,就不用担心session不可用的问题
tips: 微信小程序的坑
微信小程序没有实现cors,不做其他处理会导致登录不成功。解决方法微信开发社区搜索。
前辈的骚操作:
小程序登录的时候后端通过request.getSession().getId()的方式把jsessionid返回给小程序,然后小程序在header里手动指定cookie。

浙公网安备 33010602011771号