许多框架在封装的时候由于各种安全等原因,导致使用自身的封装请求时每次都是使用新的会话,导致每次的sessionid都不同。
解决方法:
1.如微信小程序
可以直接修改 header.cookie = ‘SESSION=’ + sessionId cookie里面的数据时可以考虑在后端校验成功后将当次的sessionid返回到页面,页面再修改cookie进行下一次请求,如果过期了,再调用后台登录方法,重新执行上一步,然后重发请求即可。如我文章
公众号基础的小程序搭建中说明。
2.如我使用过的白鹭引擎(无法直接编辑 请求中的header.cookie)
用到过的人都知道,自带的请求不能直接编辑cookie或者在请求中附带set-cookie等关键字。修改sessionid到其中是不行的(=-= 尝试过N次失败的经历),就可以使用如白鹭请求的request.withCredentials = true 【表明在进行跨站(cross-site)的访问控制(Access-Control)请求时,使用认证信息(例如cookie或授权的header)】然后在后端修改过滤器/或者未被过滤器拦截的接口,加上:
response.setHeader