微信小程序 http请求的session管理


Posted in Javascript onJune 07, 2017

微信小程序 http请求的session管理

作为一个开发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");
      }
    })

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jquery 必填项判断表单是否为空的方法
Sep 14 Javascript
js 屏蔽鼠标右键脚本附破解方法
Dec 03 Javascript
jQuery的deferred对象使用详解
Aug 20 Javascript
JS Array创建及concat()split()slice()的使用方法
Jun 03 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
Aug 18 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
js实现手机发送验证码功能
Mar 13 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
详解js创建对象的几种方法及继承
Apr 12 Javascript
angular8和ngrx8结合使用的步骤介绍
Dec 01 Javascript
Ionic2开发环境搭建教程
Aug 20 #Javascript
微信小程序Redux绑定实例详解
Jun 07 #Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 #Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 #Javascript
vue2.0 自定义日期时间过滤器
Jun 07 #Javascript
详解Node.js 命令行程序开发教程
Jun 07 #Javascript
详解vee-validate的使用个人小结
Jun 07 #Javascript
You might like
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
Python模块学习 re 正则表达式
2011/05/19 Python
python赋值操作方法分享
2013/03/23 Python
有趣的python小程序分享
2017/12/05 Python
Python基于WordCloud制作词云图
2019/11/29 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
考试作弊检讨书
2014/10/21 职场文书
革命电影观后感
2015/06/18 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js