微信小程序开发《二》:http请求的session管理
来源:互联网 发布:禁毒知识网络竞赛 分数 编辑:程序博客网 时间:2024/06/06 17:53
作为一个开发JavaWeb应用的程序猿,都喜欢将用户登录后的用户信息(比如说用户id,用户名称)放入session中保存,之后在业务逻辑的开发中需要用到用户信息的时候就可以轻松又方便的从session中取到值。最近在开发微信小程序的时候碰到一个问题就是每次微信小程序请求的时候都会改变sessionid,这就会导致在后面的请求中取不到登录时保存在session中的用户信息,其实在前后端分离开发的时候也会碰到这个问题,后端程序员负责服务器端开发,提供接口程序,前端程序员负责客户端开发,调用后端程序员提供的接口程序获取数据,此时,前端程序员请求的每个接口程序也是都会改变sessionid的,因些也无法获取到登录时保存在session里的用户信息。
常见的session保持方式是,当浏览器向服务端发起http请求时,服务端检查在http头部cookie参数里是否包含sessionid,如果有sessionid就根据sessionid去查看存储在服务器端的session,session里保存的当前会话的一些信息。如果sessionid没有服务端就会分配一个,写到cookie字段里,浏览器下次发起其它请求的时候带上。
因此,为了解决上面我说的问题,我们可以这样做,客户端在第一次请求服务器时,也就是登录的时候获得一个sessionid,在本地存储起来,然后在之后每次请求服务器的时候就在header里面带上这个sessionid,写到cookie字段里。但是有个问题就是,你本地存储了这个sessionid后那么以后每次都会是这个sessionid,所以建议在程序每次启动的时候先清空本地存储的sessionid,然后发送首次请求获取新的sessionid。
如下为ajax请求时在header中带上sessionid的客户端代码:
$.ajax({ type: 'post', headers: { 'Cookie':'JSESSIONID=1k2naixut68f81q5rpr0c3n4vc' }, data: {}, dataType: 'json', timeout: 30000, url: '/test', success: function (res) { alert("success"); }, error: function (e) { alert("false"); } })
- 微信小程序开发《二》:http请求的session管理
- 微信小程序开发:http请求的session管理
- http请求的session管理
- 微信小程序开发:http请求
- android http请求实现session管理
- 微信小程序开发(二)--网络请求
- http请求中session的创建时期
- Tomcat的Session管理(二)
- 【微信小程序】封装http请求
- android开发的http请求
- http协议里面session的管理
- 微信小程序设置http请求的步骤详解
- 关于微信小程序请求http不到的问题
- android 中http请求的容错管理
- HTTP Session 管理
- HTTP Session 管理[转]
- 微信小程序基本的开发框架抽取,包括网络请求的二次封装,页面状态管理,常见页面模板封装
- 关于小程序http请求的问题
- 你应该使用Django admin的9个理由
- HDU 1569 方格取数(2) (二分图的最大点权独立集)
- 使用Mybatis Generator时遇到“Exception getting JDBC Driver”?
- eclipse代码格式化快捷键
- JavaScript高级程序设计(二)
- 微信小程序开发《二》:http请求的session管理
- 如何在PDF文件中插入一个空白页面
- 图解HTTP读书笔记(三 HTTP报文内的HTTP信息)
- No binary rubies available for: osx/10.8/x86_64/ruby-1.9.2-p320解决
- Mac下安装及配置redis-4.0.1
- JavaScript 各种遍历方式详解
- iOS 生成跳转到Appstore的链接及二维码
- webrtc/apprtc视频聊天
- jquery根据name取值