微信小程序 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 相关文章推荐
Javascript typeof 用法
Dec 28 Javascript
JavaScript 对话框和状态栏使用说明
Oct 25 Javascript
JAVASCRIPT style 中visibility和display之间的区别
Jan 22 Javascript
jQuery获取地址栏参数插件(模仿C#)
Oct 26 Javascript
file控件选择上传文件确定后触发的js事件是哪个
Mar 17 Javascript
json的定义、标准格式及json字符串检验
May 11 Javascript
JavaScript检测上传文件大小的方法
Jul 22 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
Sep 04 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
Vue数组更新及过滤排序功能
Aug 10 Javascript
Angular2.0实现modal对话框的方法示例
Feb 18 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
Jan 07 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
Yii隐藏URL中index.php的方法
2016/07/12 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
js简易版购物车功能
2017/06/17 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python 批量修改/替换数据的实例
2018/07/25 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
HTML5有哪些新特征
2015/12/01 HTML / CSS
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
大学生的网上创业计划书
2013/12/31 职场文书
2014企业年终工作总结
2014/12/23 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
六年级数学教学反思
2016/02/16 职场文书