From 4db5d1b113d76a26b48834909cbdd03b3286e85d Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Fri, 18 Jun 2021 14:57:35 +0800 Subject: [PATCH] Merge branch 'master' of ssh://dev.zhiheiot.com:29418/mob-components --- bases/Fetcher.js | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 40 insertions(+), 4 deletions(-) diff --git a/bases/Fetcher.js b/bases/Fetcher.js index aae3313..5dce631 100644 --- a/bases/Fetcher.js +++ b/bases/Fetcher.js @@ -128,12 +128,22 @@ */ query(type, url, data = null, remap, options = {}) { return new Promise((resolve, reject) => { + const header = { + ...this._defaultConfig.header, + }; + if (process.env.TARO_ENV === 'weapp') { + header['Cookie'] = this._getCookies(); + } Taro.request({ ...this._defaultConfig, + header, url: this._defaultConfig.url + url, method: type.toUpperCase(), data, success: response => { + if (process.env.TARO_ENV === 'weapp') { + this._saveCookies(response.cookies); + } /** * @type {{state: {code, http, msg}, data: Object}} * @example response.state.code @@ -153,6 +163,24 @@ }, }); }); + } + + _saveCookies(cookies) { + const localCookies = JSON.parse(wx.getStorageSync('cookies') || '{}'); + cookies.forEach(cookie => { + const mc = cookie.match(/([a-zA-Z0-9_\-]+)=(.*?);/); + localCookies[mc[1]] = mc[2]; + }); + wx.setStorageSync('cookies', JSON.stringify(localCookies)); + } + + _getCookies() { + const localCookies = JSON.parse(wx.getStorageSync('cookies') || '{}'); + const cookiesArr = []; + Object.keys(localCookies).forEach(key => { + cookiesArr.push(key + '=' + localCookies[key]); + }); + return cookiesArr.join('; '); } /** @@ -251,7 +279,9 @@ } else { msg += '解析通讯数据异常!'; } - this.message('error', msg); + setTimeout(() => { + this.message('error', msg); + }, 20); } /** @@ -284,12 +314,18 @@ return response.data; } } else if (response.state.code === 2001) { - this.message('info', response.state.msg); + setTimeout(() => { + this.message('info', response.state.msg); + }, 20); return null; } else if (response.state.code === 9001) { - // this._showLoginExpired(); + if (process.env.TARO_ENV === 'weapp') { + Taro.navigateTo({ url: '/pages/home/index/index?mode=login' }); + } } else { - this.message('error', response.state.msg); + setTimeout(() => { + this.message('error', response.state.msg); + }, 20); return null; } } -- Gitblit v1.9.1