微信小程序sessionid不一致问题解决

问题

由于小程序端两次请求的 sessionid 不一致, 导致后端无法取得 session

解决办法

在登录时获取sessionid

//第一次请求登录接口时保存到sessionid中
success: function (res) {
     wx.hideLoading();
     wx.removeStorageSync('sessionid');//每次登录时清楚缓存
     if (res.data.code == "0000") {
      if (res.data.data.roleList[0].value =='student'){
       wx.showToast({
        title: '登录成功',
        icon: 'success',
        duration: 1000
       })
       wx.setStorageSync('sessionid', res.header['Set-Cookie']); //保存Cookie到Storage

      }
     } else {
      wx.showToast({
       title: '登录失败',
       icon: 'none',
       duration: 2000
      })
     }
    },

在后面进行页面的请求时,在请求头header里加上你存储的这个Set-Cookie的值

wx.request({   url: 'https://xxxx/examResult/selectWxListStudentStudyStatistic',
   method: 'post',
   header: {
    'content-type': 'application/x-www-form-urlencoded',//解决请求不到数据
    'cookie': wx.getStorageSync("sessionid")//读取sessionid,当作cookie传入后台将PHPSESSID做session_id使用
   },
   success: function (res) {
     wx.hideLoading();//去掉loading
   },
   fail: function (e) {
    wx.showToast({
     title: '服务器出现错误',
     icon: 'none',
     duration: 2000
    })
   }
  })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

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

    微信小程序 http请求的session管理 作为一个开发JavaWeb应用的程序猿,都喜欢将用户登录后的用户信息(比如说用户id,用户名称)放入session中保存,之后在业务逻辑的开发中需要用到用户信息的时候就可以轻松又方便的从session中取到值.最近在开发微信小程序的时候碰到一个问题就是每次微信小程序请求的时候都会改变sessionid,这就会导致在后面的请求中取不到登录时保存在session中的用户信息,其实在前后端分离开发的时候也会碰到这个问题,后端程序员负责服务器端开发,提供接口

  • 微信小程序开发一键登录 获取session_key和openid实例

    微信小程序开发一键登录 获取session_key和openid实例 思来想去不愿自己的微信小程序是个单机版本.自己又不会写后台.现在借助leancloud可以实现微信小程序一键登录功能.尝试后,做笔记. 第一步:下载av-weapp.js,放到utils下. 第二步:使用 const AV = require('../../utils/av-weapp.js');路径根据具体情况而定. 第三步:做初始化. AV.init({ appId: 'EJx0NSfY********-gzGzoHsz'

  • 微信小程序性能优化之checkSession的使用

    一直发现小程序好慢,尤其是第一次打开的时候.因为第一次会涉及到登录的授权,官方文档是这么说的: 通过 wx.login() 获取到用户登录态之后,需要维护登录态.开发者要注意不应该直接把 session_key.openid 等字段作为用户的标识或者 session 的标识,而应该自己派发一个 session 登录态(请参考登录时序图). 所以后台存储了一个session标识,和微信的session_key 是独立的.而且业务自身的session也有设置有效期,和微信的session_key 是

  • 详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs

    微信小程序-获取用户session_key,openid,unionid - 后端为nodejs8.0+ 步骤: 1.通过wx.login接口获取code既jscode,传递到后端: 2.后端请求 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 地址,就能获取到openid和unionid. 小程序接

  • 微信小程序 获取session_key和openid的实例

    微信小程序 获取session_key和openid的实例 说说获取session_key和openid的条件 1.AppID(小程序ID); 2.AppSecret(小程序密钥); 3.登录时获取code; 注意:即使获取到了appid,未通过打款验证,也是不能拿到code的. 打印出来是这样的. 获取流程: 1.公众平台上找到AppID(小程序ID)和AppSecret(小程序密钥); 2.微信小程序中调用API获取code wx.login({ success: function(res)

  • 小程序:授权、登录、session_key、unionId的详解

    微信应用的一个很大的优势就在于使用过程中是不需要进行注册和显式登录的,大部分问题基本上可以一键解决.但是在授权.登录和获取用户信息的过程中都发生了哪些事情,今天我们就来讨论一下.这篇文章主要分析以下几个问题: 授权和登录的意义 session_key 的作用 unionId 的作用,有哪些获取途径 在应用中如何保存用户登录态 1. 授权和登录的意义 首先必须要明白,授权和登录实际上是两个操作. 1.1 授权(已废弃) 那授权的作用是啥呢?从小程序官方文档中我们可以看到授权操作只需通过wx.aut

  • 微信小程序sessionid不一致问题解决

    问题 由于小程序端两次请求的 sessionid 不一致, 导致后端无法取得 session 解决办法 在登录时获取sessionid //第一次请求登录接口时保存到sessionid中 success: function (res) { wx.hideLoading(); wx.removeStorageSync('sessionid');//每次登录时清楚缓存 if (res.data.code == "0000") { if (res.data.data.roleList[0].

  • 微信小程序 图片边框解决方法

    微信小程序 图片边框问题解决 在最开始对网页进行构建的时候,我们并不知道网站中需要放置那些特定的图片,所以我们往往会放置一个空的img标签,但是这样的话,图片标签因为没有src的值,所以在网站中会显示出来一个黑色的边框, 其代码及效果显示如下: 在这里就解决黑色边框,提出两种解决方案: 1.设置图片的opacity:0; 2.放置一个其他的块标签代替img标签,因为在这里img只是起到占位的功能,所以可以使用其他的标签替代,在使用的时候,在换回img标签. 感谢阅读,希望能帮助到大家,谢谢大家对

  • 微信小程序 wx.login解密出现乱码的问题解决办法

    微信小程序 wx.login解密出现乱码的问题解决办法 最近在给公司开发微信小程序,需要用到微信登录,根据文档要求需要把获取的用户信息按照AES进行解密. 我使用的是官方提供的PHP demo,拷贝到程序中,测试发现,解密之后的数据前面有一串乱码. 类似于这样子的,前面一段是乱码. 经过仔细的检查,发现官方的提供的demo中的帐号和机密之后的信息是可以解密的,这就说明解密代码是没有问题的. 后来查询微信开发者社区,找到好多解密失败.其中一个回答说是因为多次调用wx.login之后导致的问题. 终

  • 微信小程序 TLS 版本必须大于等于1.2问题解决

    微信小程序  TLS 版本必须大于等于1.2问题解决 此问题最近在微信小程序开发中,比较常见. 在解决这个问题之前,我们需要了解一下,当前的系统环境是否支持TLS1.2以上,可以参考一下表格: 来源:微软官方 确认系统支持以后,进行一下操作: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols]

  • 微信小程序遇到修改数据后页面不渲染的问题解决

    微信小程序遇到修改数据后页面不渲染的问题解决 前言: 去年从小程序一开始出来到现在,我一直是比较看好和保持一定的关注度的,小程序的掀起的波浪我觉得一开始是在前端及其他技术开发人群中的,这是我第一次有意识的亲眼目睹了一个新技术的发展,还是感觉比较荣幸的. 唱衰小程序?我的观点是肯定不可能,因为现在每天提交审核的小程序还在继续增加,而且有些小程序确实很好用,比如摩拜的扫码骑车,还有我上周去KTV,直接用小程序扫屏幕上的二维码,就可以绑定房间,然后通过小程序点歌,切歌,发表情包等方便好玩的事情,所以,

  • 微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决

    微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决 微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行wx.uploadFile 这个在电脑上面测试与苹果手机上面都不会有什么问题 但当用安卓测试的时候,你会发现小程序会提示一个the same task is working wx.uploadFile不能并行,因为wx.uploadFile是一个异步函数,所以循环的时候在安卓手机上会出现并行 解决的方法 做一个上传完的

  • 微信小程序request出现400的问题解决办法

    微信小程序request出现400的问题解决办法 最近在跟着demo学习微信小程序,当进行网络请求时出现400,折腾了很久,代码如下: wx.request({ url : "https://api.douban.com/v2/movie/top250", data: {}, header:{ "Content-Type":"application/json" }, success: function(res) { console.log(res

  • 微信小程序swiper使用网络图片不显示问题解决

    这篇文章主要介绍了微信小程序swiper使用网络图片不显示问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 wxml代码: <view class="container"> <swiper indicator-dots="true}" autoplay="true" interval="3000" duration="1">

  • 微信小程序input、textarea层级过高穿透的问题解决

      微信小程序原生组件camera.canvas.input(仅在focus时表现为原生组件).live-player.live.pusher.map.textarea.video的层级是最高的,页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上. 从图中效果可以看出input输入的内容穿透到了选择列表自定义组件,解决办法: 1.使用if,当触发选择列表时隐藏input或textare组件,选择完成点击确认关闭选择列表,显示input或textare. 2.选择列表自定义组件

  • 微信小程序  TLS 版本必须大于等于1.2问题解决

    微信小程序  TLS 版本必须大于等于1.2问题解决 此问题最近在微信小程序开发中,比较常见. 在解决这个问题之前,我们需要了解一下,当前的系统环境是否支持TLS1.2以上,可以参考一下表格: 来源:微软官方 确认系统支持以后,进行一下操作: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols]

随机推荐