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

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

微信小程序wx.request攔截器使用詳解

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

一.

請求后臺的時候,服務端對每一個請求都會驗證權限,而前端也需要對服務器返回的特殊狀態(tài)碼統(tǒng)一處理,所以可以針對業(yè)務封裝請求。

首先我們通過request攔截器在每個請求頭里面塞入token等信息,好讓后端對請求進行權限驗證。并創(chuàng)建一個respone攔截器,當服務端返回特殊的狀態(tài)碼,我們統(tǒng)一做處理,如未登錄網絡錯誤等操作。

二.

1.首先了解小程序官方api-wx.request() ,通過示例可以看出wx.request的參數(shù)是一個對象,擁有傳輸?shù)刂罚瑐鬏攦热荩憫^,成功失敗回調函數(shù)等屬性和方法,我們可以通過封裝相應的響應頭和成功失敗回調函數(shù)達到相應的目的:

// 官方代碼示例wx.request({ url: 'test.php', //僅為示例,并非真實的接口地址 data: {  x: '',  y: '' }, header: {  'content-type': 'application/json' // 默認值 }, success (res) {  console.log(res.data) } fail(res){ console.log(res) }})

2.封裝

封裝請求頭和返回的狀態(tài)碼(注:具體頭需要添加哪些屬性,返回的狀態(tài)碼處理,是根據(jù)與后臺實際溝通所需的參數(shù)來制定的)

const app = getApp();const appid = 'xxxx';const appSecret = 'xxxxxx';let ajaxNum = 0;// 獲取accessTokenfunction getAccessToken(callback) { wx.request({  url: '/api/Token',  data: {   appid: aesEncrypt(appid),// aesEncrypt():自定義的用crypto-js.js進行aes加密的方法,這里只需要知道加密了即可,不需要關注此方法   appSecret: aesEncrypt(appSecret),  },  success: function (res) {   if(res.statusCode ===200 && res.data.code === 0) {    let accesstoken = res.data.data.accesstoken;    if (typeof (callback) === 'function' && accesstoken) {     callback(accesstoken);    }   }  }, })}// 封裝request請求const myRequest = options => { if(options) {  getAccessToken(function (accesstoken){   // header 設置Content-Type,accesstoken, usertoken, noncestr, timestamp等信息,與后臺協(xié)商好   if(options.header === undefined || options.header === null) {    options.header = {};   }   options.header['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';   // usertoken在登錄后保存在緩存中,所以從緩存中取出,放在header   let usertoken = wx.getStorageSync('usertoken');   if (usertoken) {    options.header['usertoken'] = usertoken;   }   // 自定義getNoncestr()設置隨機字符串,getTimestamp()獲取時間戳   let noncestr = getNoncestr();   let timestamp = getTimestamp();   // sign進行加密   let sign = getSign(accesstoken, appid, appSecret, noncestr, timestamp);   if (timestamp) {    options.header['timestamp'] = timestamp;   }   if (noncestr) {    options.header['noncestr'] = noncestr;   }   if (sign) {    options.header['sign'] = sign;   }   //url   let baseUrl = config.BASE_HOST;   if (options.url.indexOf('http') != 0) {    options.url = baseUrl + options.url;   }   // method、data  if (options.method === undefined || options.method === null) {   options.method = 'post';  }  if (options.method.toLowerCase() === 'post') {   if(options.data) {    let dataStr = JSON.stringify(options.data);    let base64Str = base64Encrypt(dataStr);    options.data = serializeData({ param: base64Str });   }  }  //success  if (options.success && typeof(options.success) === 'function') {   let successCallback = options.success;   options.success = function(res) {    // 判斷不同的返回碼 200/404    if (res.statusCode === 200) {     try {     // 接收的后臺數(shù)據(jù)用自定義base64解密方法解密后轉為對象       let str = base64Decrypt(res.data);      let data = JSON.parse(str);      if (parseInt(data.resultCode, 10) === -1) {//后臺商議好的狀態(tài)碼,-2未登錄,-1-3后臺出錯       console.error('網絡超時,請稍后重試');      } else if (parseInt(data.resultCode, 10) === -3) {       console.error(data.msg);      } else if (parseInt(data.resultCode, 10) === -2){       console.log("用戶未登錄-ajax");      }      res.data = data;      //調用自定義的success      successCallback(res);     } catch (e) {      console.error('出錯了,' + e + ',接口返回數(shù)據(jù):' + res.data);     }    } else if(res.statusCode === 404) {      console.log('404');    }   }  }   //執(zhí)行微信的請求   wx.request(options);  }); } }module.exports = { myRequest: myRequest

頁面調用示范(與wx.request傳參一致):

const ajax = require('ajax.js'); ajax.javaRequest({   url: '/xxx',   data: {    xxxx: xxx   },   method: 'POST',   success: res => {      console.log(res, '成功')   }  })

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美天堂一区 | 国产精品成人av片免费看最爱 | 久久人添人人爽人人爽人人片av | 久草在线新视觉 | 爱爱视频天天干 | 特色一级黄色片 | 成人在线视频在线观看 | 国产羞羞视频在线观看 | wwwxxx视频 | 西川av在线一区二区三区 | 黄色片网站在线播放 | 中文字幕伦乱 | 99这里精品 | 国产精品久久久久久久午夜片 | 国产亚洲精品成人 | 亚洲午夜视频 | 特级黄色一级毛片 | 久久艹艹艹 | 久久精品无码一区二区三区 | 国产视频软件在线 | 日韩精品中文字幕一区 | 色网站免费观看 | 最新黄色电影网站 | 亚洲第一成人在线视频 | 88xx成人永久免费观看 | 91精品国| 国产精品美女久久久久久网站 | 欧美a黄 | 法国性经典xxxhd | 久久艹精品| 一区二区免费网站 | 毛片视频播放 | 国产免费一区二区三区在线能观看 | 欧美高清另类自拍视频在线看 | 国产电影av在线 | 国产精品久久久久久久娇妻 | 国产午夜亚洲精品理论片大丰影院 | 亚洲极色 | 一色桃子av大全在线播放 | 欧美大荫蒂xxx | 国产精品久久久久久久不卡 |