1.本のロジックは、私たちが地元にトークンとユーザー情報を格納し、ユーザーのログインが成功しています
2.configファイルがbaseUrlに保存されています
1 CONST設定= { 2 3 URL: 'HTTPS:XXX / index.phpを' 4 } 5 エクスポート{ 6 コンフィグ 7 }
3.ライブラリ要求requset.js、HTTPリクエスト関数は、要求が失敗した拒否、リクエストが成功した解決があるwx.requestインターフェイスをマイクロチャネルを使用して、約束のオブジェクトを返します。
1 インポート{ 2 設定 3 } './config.js'から 4インポートトースト' ../ui/dist/toast/toast」から 5 。6 // パブリック要求インターフェース方法 。7 VARのOnOff = trueに 8 CONST = HTTP(方法、URL、データ)=> { 9。 10 // ローディングアニメーション 11。 wx.showLoading({ 12は タイトル: 'ローディング...' 、 13は showCancel:trueに、 14 マスク:trueに 15 }); 16 。17 // ユーザ情報オブジェクト 18れている 19。 LET LOGININFO = wx.getStorageSync( 'login_info')JSON.parse(wx.getStorageSync( 'login_info'? )):{ 20は トークン:ヌル、 21は ID:ヌル 22である }; 23は 戻り 、新しい新しいプロミス(関数(解決、リジェクト){ 24 25 wx.request({ 26である 方法:方法、// 要求種別 27 URL:URLのconfig.url +、// 要求アドレス 28 ヘッダ:{ // 要求ヘッダー 29 'コンテンツタイプ': 'ファイルアプリケーション/ JSON' 、 30 'トークン' :loginInfo.token、 31が 'ID' :loginInfo.id 32 }、 33は データ:データは、// パラメータ要求 34は、 成功:RES => { 35 WX )(.hideLoading; // ローディングアニメーションクローズする要求の完了 36 // トークンは、(対応する後行ノックダウンに応じてリターン・ステータスコード)を透明なユーザ情報を有効期限が切れる 37 IF(res.data.error_code == 21000 ){ 38はである (にconsole.log "ログインタイムアウト" ) 39 IF(!ONOFF)リターン 40 wx.showModal({ 41は タイトル: 'プロンプト' 、 42は コンテンツ: 'ログインの期限が切れている' 、 43は confirmText: "再度ログイン" 、 44は showCancel:falseに、 45 の成功(RES){ 46である IF (res.confirm){ 47 wx.removeStorageSync( "login_info" ); 48 wx.setStorageSync( 'isLogin'、falseに); 49 wx.reLaunch({URL: "/ページ/ログイン/ページ/ガイド/ガイド" })。 50 // ONOFF ONOFF =!。 51 } 52 } 53 }) 54 55 リターン 56 } 57 であれば(res.statusCode == 200 ){ 58 ONOFF = 真。 59 解決(res.data)。// 成功回调 60 } 他{ 61 console.log(res.data、666 ) 62がされて wx.showToast({ 63です :res.data.msg || 'ネットワークエラー!'のタイトル、 64 アイコン: 'なし' 、 65 :DURATION 2000 66 }) 67 } 68 } 、 69は 失敗:ERR => { 70 にconsole.log(ERR、 "要求が失敗した" ) 71のISは (ERR)を拒否; // 失敗コールバック 72 wx.hideLoading(); //请求完成关闭加载动画 73 83 }、 84 完全:インフォメーション=> { 85 86 87 } 88 }) 89 }) 90 } 91 92 CONST取得=(URL、データ)=> HTTP( 'GET' 、URL、データ) 93ポスト=(URL、データ)=> HTTP( 'POST'のconst 、URL、データ) 94のconst PUT =(URL、データ)=> HTTP( 'PUT' 、URL、データ) 95のconst DELETE =(URL、データ)=> HTTP( '削除' 、URL、データ) 96 輸出{ 97 取得、 98 ポスト、 99 DELETE、 100 PUT 101 }
4.apiファイル
1 インポート{ 2 取得、 3 後、 4 PUT 。5 }「../utils/request.js'から 6つの // アカウントのログインインターフェース 7エクスポート関数loginHandle(paramsは){ 8 リターン・ポスト( '/ API / V1 /ログイン' 、paramsは) 。9 }
ページの呼び出し
インポート{
loginHandle
}「../utils/request.js'から
loginHandle()。次に、(RES => {
にconsole.log(RES、 "要求であった成功した戻り値")
})