網(wǎng)絡(luò)請求
wx.request(Object object) 發(fā)起網(wǎng)絡(luò)請求,最終發(fā)送給服務(wù)器的數(shù)據(jù)是 String 類型奶段,
如果傳入的 data 不是 String 類型,會被轉(zhuǎn)換成 String 。
wx.request({
? ? ? ? url: serverUrl + '/user/login.do',
? ? ? ? method: "POST",
? ? ? ? data: {
? ? ? ? ? "username": e.detail.value.username,
? ? ? ? ? "password": e.detail.value.password
? ? ? ? },
? ? ? ? header: {
? ? ? ? ? 'content-type': 'application/x-www-form-urlencoded' // 默認(rèn)值
? ? ? ? },
? ? ? ? success(res) {
? ? ? ? ? console.log(res.data);
? ? ? ? ? if (res.data.status == 0) {
? ? ? ? ? ? // 登錄成功跳轉(zhuǎn)
? ? ? ? ? ? let session_id = res.data.session_id;
? ? ? ? ? ? wx.setStorageSync('session_id', session_id)
? ? ? ? ? ? wx.showToast({
? ? ? ? ? ? ? title: res.data.msg,
? ? ? ? ? ? ? icon: 'success',
? ? ? ? ? ? ? duration: 2000
? ? ? ? ? ? });
? ? ? ? ? }else{
? ? ? ? ? ? wx.showToast({
? ? ? ? ? ? ? title: res.data.msg,
? ? ? ? ? ? ? icon: 'none',
? ? ? ? ? ? ? duration: 2000
? ? ? ? ? ? })
? ? ? ? ? }
? ? ? ? },
? ? ? ? complete(){
? ? ? ? ? console.log(e.detail.value.username)
? ? ? ? ? console.log(password)
? ? ? ? }
? ? ? })
? ? }
? },
獲得cookie并存儲
登錄請求回來之后,讀取res的header的cookie
這里的sessionid隨便寫的,就是個唯一標(biāo)識
wx.setStorageSync("sessionid", res.header["Set-Cookie"])
請求帶上cookie
? //創(chuàng)建header
? var header;
? header = {
? ? 'content-type': 'application/x-www-form-urlencoded',
? ? 'cookie':wx.getStorageSync("sessionid")//讀取cookie
? };
? //進行請求,一般外層都有一個封裝,然后放在公共類里邊
? wx.request({
? ? url: realURL,
? ? method: method,
? ? header: header,//傳在請求的header里
? ? data: datas,
? ? success(res) {
? ? //請求成功的處理
? ? }
? )}
session在本地管理
var sessionkey;
var sessiondate;
//可以封裝一個保存sessinid的方法痹升,將sessionid存儲在localstorage中叨橱,定為半小時之后清空此sessionid緩存典蜕。
function saveSession(sessionId) {
? ?console.log(" now save sessionid: " + sessionId)
? ?wx.setStorageSync(“sessionkey” sessionId)//保存sessionid
? ?wx.setStorageSync(“sessiondate”, Date.parse(new Date()))//保存當(dāng)前時間,
}
// 過期后清除session緩存
function removeLocalSession() {
? wx.removeStorageSync(“sessionid的key”)
? wx.removeStorageSync(sessiondate)
? console.log("remove session!")
}
//檢查sessionid是否過期的方法
function checkSessionTimeout() {
? var sessionid = wx.getStorageSync(sessionkey)
? if (sessionid == null || sessionid == undefined || sessionid == "") {
? ? console.log("session is empty")
? ? return false
? }
? var sessionTime = wx.getStorageSync(sessiondate)
? var aftertimestamp = Date.parse(new Date())
? if (aftertimestamp - sessionTime >= SESSION_TIMEOUT) {
? ? removeLocalSession()
? ? return false? ? ??
? }
? return true
}
//如果sessionid過期罗洗,重新獲取sessionid
function checkSessionOk() {
? console.log("check session ok?...")
? var sessionOk = checkSessionTimeout()
? if (!sessionOk) {
? ? requestsessionid(function () {
? ? })
? }}
//定義一個方法每隔一段時間檢查sessionid是否過期
function checkcrosstime() {
? ?setInterval(checkSessionTimeout, ----)//這個時間可以自定義愉舔。比如25 * 60 * 1000(代表25分鐘)
}
歡迎點評知錯,本人小白伙菜,文章有借鑒其他大佬的博客轩缤。