微信小程序 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实现UTF8编码转换成gb2312编码
Dec 22 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
Feb 07 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
在JavaScript中构建ArrayList示例代码
Sep 17 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
Mar 04 Javascript
require.js配合插件text.js实现最简单的单页应用程序
Jul 12 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
Aug 24 Javascript
Bootstrap Table使用方法解析
Oct 19 Javascript
手机端转换rem适应
Apr 01 Javascript
总结js中的一些兼容性易错的问题
Dec 18 Javascript
ES6 fetch函数与后台交互实现
Nov 14 Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 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
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
python文件与目录操作实例详解
2016/02/22 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
python2.7实现邮件发送功能
2018/12/12 Python
详解python的四种内置数据结构
2019/03/19 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
财务情况说明书范文
2014/05/06 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
优秀班集体申报材料
2014/12/25 职场文书
贷款收入证明范本
2015/06/12 职场文书
交流会主持词
2015/07/02 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
golang 语言中错误处理机制
2021/08/30 Golang