因为小程序原生不支持Cookie,因此也不支持Session。

网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。

大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能。

直接上代码

function NetRequest({url, data, success, fail, complete, method = "POST", header = { 'Content-type': 'application/x-www-form-urlencoded' }}) {

let session_id = wx.getStorageSync('PHPSESSID');//本地取存储的sessionID

if (session_id != "" && session_id != null) { //本地session存在,则放到header里

header.Cookie = session_id;

}

wx.request({

url: url,

method: method,

data: data,

header: header,

success: res => {

//发现response有Set-Cookie,说明本地的PHPSESSID需要更新或不存在:

if(res.header["Set-Cookie"]){

wx.setStorageSync('PHPSESSID', res.header["Set-Cookie"]);

}

res['statusCode'] === 200 ? success(res.data) : fail(res)

},

fail: fail,

complete: complete

})

}

其他语言的Session类似方法皆可实现。

PS:下面看下彻底解决小程序无法获取SESSION问题

最近在开发小程序,发现小程序是通过微信服务器触发我们服务器,所以每次请求获取到的session_id都不同,导致小程序中无法获取session,这样我就想如果session_id不发生变化,那么session是否可以使用呢???

查看了一下小程序的开发文档(wx.request);

发起网络请求中有一个header参数,

我们可以通过header传递一个固定参数到后台,

作为session_id,这样sesion_id不发生变化,

微信小程序中就可以使用或触发session了。

一、首先找到第一次发起网络请求的地址,将服务器返回set-cookie当全局变量存储起来

wx.request({

......//此处省略

success: function(res) {

console.log(res.header);

wx.removeStorageSync('sessionid') //必须先清除,否则res.header['Set-Cookie']会报错

//set-cookie:PHPSESSID=ic4vj84aaavqgb800k82etisu0; path=/; domain=.zhix.net

// 登录成功,获取第一次的sessionid,存储起来

// 注意:Set-Cookie(开发者工具中调试全部小写)(远程调试和线上首字母大写)

wx.setStorageSync("sessionid", res.header["Set-Cookie"]);

}

})

二、请求时带上将sessionid放入request的header头中传到服务器,服务器端可直接在cookie中获取

wx.request({

......

header: {

'content-type': 'application/json', // 默认值

'cookie': wx.getStorageSync("sessionid")

//读取sessionid,当作cookie传入后台将PHPSESSID做session_id使用

},

success: function(res) {

console.log(res)

}

})

三、后台获取cookie中的PHPSESSID,将PHPSESSID当作session_id使用

// 判断$_COOKIE['PHPSESSID']是否存在,存在则作session_id

if ($_COOKIE['PHPSESSID']) {

session_id($_COOKIE['PHPSESSID']);

}

session_start();

echo session_id();

总结

以上所述是小编给大家介绍的微信小程序实现Session功能及无法获取session问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

php小程序session取不到,微信小程序实现Session功能及无法获取session问题的解决方法...相关推荐

  1. webform窗体怎么实现session唯一标识_微信小程序用户登录和登录态维护的实现_javascript技巧...

    这篇文章主要介绍了微信小程序用户登录和登录态维护的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 让用户登录,标识用户和获取 ...

  2. Python爬虫系列之爬取某优选微信小程序全国店铺商品数据

    Python爬虫系列之爬取某优选微信小程序全国商品数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击这里联系我们 < 微信请扫描下方二维码 代码仅 ...

  3. 微信小程序如何从数组里取值_微信小程序数据存储与取值详解

    在小程序开发的过程,经常要需要这个页面输入的数据,在下一个页面中进行取值赋值. 比如: 在A页面input输入框,输入电话号码,点击添加.需要在B页面电话区域中,显示刚刚输入的电话号码. 因为这是两个 ...

  4. 【微信小程序宝典】从零开始做微信小程序开发NO.2

    2019独角兽企业重金招聘Python工程师标准>>> 为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 首先感谢几位给予建议的同学, ...

  5. 微信小程序开发系列五:微信小程序中如何响应用户输入事件

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  6. 微信小程序开发系列二:微信小程序的视图设计

    大家如果跟着我第一篇文章 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 一起动手,那么微信小程序的开发环境一定搭好了.效果就是能把该小程序的体验版以二维码的方式发送给其他朋友使用. 这个系列 ...

  7. 【微信小程序宝典】从零开始做微信小程序开发

    开发前必读简要 基于大量无效开发,无法上线的案例,所以开发前部分知识十分重要:| 链接 微信小程序个人注册简单步骤 打开mp.weixin.qq.com,点击右上角立即注册,进入小程序注册| 链接 微 ...

  8. vue 传参 微信_小猿圈web前端之微信小程序页面间跳转传参方式总结

    原标题:小猿圈web前端之微信小程序页面间跳转传参方式总结 最近小程序发展的越来越快,很多大公司也在打造自己的小程序平台以及购物小程序等等,今天小猿圈web前端讲师就总结了关于微信小程序的知识点,首先 ...

  9. 基于微信小程序智能停车场系统(微信小程序毕业设计)

    基于微信小程序智能停车场系统 基于微信小程序智能停车场系统,后台采用ssm框架,java编程语言,mysql数据库制作:本系统主要分为用户和管理员两个角色:用户的主要功能有,注册和登陆系统,查看系统公 ...

最新文章

  1. 安装lua及问题解决
  2. anaconda 安装 pytorch
  3. oracle中如何分页,Oracle中操作分页
  4. 设计精美Power Bi报告的诀窍以及让人眼前一亮的精美Power Bi图表
  5. Ansible(六)对目标主机进行磁盘分区,创建逻辑卷、格式化并挂载
  6. html怎么给表格加a链接地址,html基础02-图片标签、绝/相对地址、表格的属性、链接的属性及链接的分类、name定义锚点的名称、编码...
  7. 华三交换机配置access命令_H3C交换机配置基本命令详解
  8. Codeforces Round #507 B. Shashlik Cooking
  9. 高考数学知识点:向量压轴题秒杀神器-中点转化式
  10. 使用PCA可视化数据
  11. 多元相关性分析_NAR:宏基因组网络分析工具MetagenoNets
  12. 基于成本效益的深度信任网络的智能LEACH的多级动态优化附Matlab代码
  13. 计算机网络10种,(完整版)计算机网络10种硬件设备介绍.doc
  14. 大数据之ZooKeeper数据类型和节点操作
  15. 音视频 SDP 添加码率
  16. 【项目分享~写给应届生的一篇文章】基于Web电影院购票系统 ~~ 选座模块
  17. 易飞ERP进货单源码——复制报价单
  18. DELL笔记本电源检测功率匹配、充不进电
  19. pytorch训练神经网络loss刚开始下降后来停止下降的原因
  20. 小米、苹果、智汀不知道怎么选?看它就够了,主流智能家居品牌对比和介绍

热门文章

  1. Kong社区版集成Keycloak实现微服务认证与鉴权
  2. java面向对象编程思想_Java面向对象编程思想的理解
  3. 列车时刻表的数据存储策略
  4. JavaScript三种弹出框(alert,confirm和prompt)
  5. android 不能禁用呼叫转移
  6. 财务金额转换(最大单位为亿,最小单位分)
  7. 分布式电商项目二十六:使用阿里云存储的服务端签名后直传(前端联调)
  8. 世界时 年月日时分秒转GPST
  9. 程序员转行产品经理可行吗,前景如何?
  10. 群批量管理桌面集线器控技术抖音