小程序request请求PHP服务器session失效的解决,header头部加cookie
2017-12-22 11:45
706 查看
经过各种百度查询,总算摸索出来了,跟php的小伙伴们分享下:
app.js:
第二次及以后每次其他请求时必须加上cookie头,服务器端才会认为俩次请求为同一用户
PHP服务器端:
app.js:
//登录流程 //获取openid 等信息并存储数据 wx.login({ success: function (res) { if (res.code) { //小程序第一次发起网络请求 wx.request({ url: that.globalData.url , data: { code: res.code, }, method: "POST", header: { 'content-type': 'application/x-www-form-urlencoded' }, success: function (res) { console.log(res.data) var wxSecretData = res.data.data.info; var wxSession = res.data.data.session_id; //存储缓存数据 //服务器的session_id值 wx.setStorageSync('PHPSESSID', wxSession); //3rd_session wx.setStorageSync('wxSecretData', wxSecretData); //存储成功后设置全局登录状态 that.globalData.wxlogin = true } }) } else { console.log('获取用户登录态失败!' + res.errMsg) } } })
第二次及以后每次其他请求时必须加上cookie头,服务器端才会认为俩次请求为同一用户
//获取手机号时对后端的请求 getPhoneNumber: function (e) { //检测登录态 wx.checkSession({ success: function () { if (e.detail.errMsg ==="getPhoneNumber:ok"){ //session 未过期,并且在本生命周期一直有效 var session_id = wx.getStorageSync('PHPSESSID');//获取本地取存储的sessionID //header头部加入cookie PHPSESSID为php服务器跟浏览器中cookie中的session_id名字,不能更换,java为:JSESSIONID var header = { 'content-type': 'application/x-www-form-urlencoded', 'Cookie': 'PHPSESSID=' + session_id } //传值给服务器获取并存储 wx.request({ url: app.globalData.url , data: { iv: e.detail.iv, secretCode: e.detail.encryptedData }, method: 'POST', header: header, success: function (res) { console.log(res.data); return; if (res.data.status == 1) { //获取手机号。。。 } else { wx.showToast({ title: '读取手机号失败', image: app.globalData.wrongSrc, duration: 2000 }) } }, fail: function () { wx.showToast({ title: '获取失败', image: app.globalData.wrongSrc, duration: 2000 }) } }); } }, fail: function () { //登录态过期 wx.login() //重新登录 } }) },
PHP服务器端:
//获取当前服务器端的session_id,然后给小程序传值过去 session_id();
相关文章推荐
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- js ajax解决跨域请求,以及requestheader里没有cookie 3ff0
- php在客户端禁用cookie时让session不失效的解决方法
- php:服务器的header[头部]cookie顶级域名正确设置形态
- 用P3P header解决iframe跨域访问cookie(转) Iframe session失效
- PHP Header失效的原因分析及解决方法
- Request请求用Cookie记录SessionId
- ajax跨域,cookie,session失效的问题解决办法
- PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
- 用P3P header解决iframe跨域访问cookie/session
- PHP session 失效不传递的解决办法
- 解决Listview通过addHeaderView方式头部添加轮播,轮播失效
- PHP的session阻塞机制带来的单页面多ajax请求阻塞的解决
- PHP setcookie() cannot modify header information 的解决方法
- 微信小程序 解决请求服务器手机预览请求不到数据的方法
- PHP的header("P3P: CP=CURa……")解决Cookie跨域问题
- 微信小程序wx.request请求服务器json数据并渲染到页面
- 关于php程序session_start运行很慢的解决方法
- PHP的Session阻塞机制带来的单页面多ajax请求阻塞的解决
- 解决vue跨域请求无法携带cookie,进而无法在服务器端设置session保持数据(状态)的问题