麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

微信小程序實現Session功能及無法獲取session問題的解決方法

2020-03-21 15:57:33
字體:
來源:轉載
供稿:網友

因為小程序原生不支持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使用

<?php// 判斷$_COOKIE['PHPSESSID']是否存在,存在則作session_idif ($_COOKIE['PHPSESSID']) { session_id($_COOKIE['PHPSESSID']);}session_start();echo session_id(); 

總結

以上所述是小編給大家介紹的微信小程序實現Session功能及無法獲取session問題的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩毛片在线看 | 久久精品国产亚洲7777小说 | 热99热 | 狠狠色噜噜狠狠狠米奇9999 | 美女毛片在线观看 | 国产精品一区二区日韩 | 成人污在线 | 99riav国产在线观看 | 久久久三区 | 色视频在线观看 | 香蕉在线播放 | 精品国产一区二区三区四区在线 | 一本色道久久综合亚洲精品小说 | 91久久久久久久一区二区 | 毛片大全免费看 | 一区二区三级视频 | xnxx18日本| 亚洲免费在线视频 | 日韩视频在线一区二区三区 | 香蕉视频h | 国产亚洲精品久久久久久网站 | 亚洲成人中文字幕在线 | 91精品视频网址 | 国产免费看片 | 亚洲网视频 | 久久久成人999亚洲区美女 | 毛片大全免费看 | 嗯~啊~用力~高h | 国产午夜电影 | 91精品久久久久久 | 国产亚洲精久久久久久蜜臀 | 98色视频| 日韩欧美电影一区二区三区 | 国产成年人在线观看 | 国产精品一区免费在线观看 | 黄色片网站免费在线观看 | 91九色网址| 69av导航 | 亚洲精品午夜在线 | 九九热九九热 | 91精品国产免费久久 |