• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

    mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:07:51
    文檔

    mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼

    mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼:我們安裝好flyio之后 npm install flyio 找到src目錄下的main.js文件 首先引入flyjs并實(shí)例化 var Fly=require(flyio/dist/npm/wx) var fly=new Fly 比方說我們每次請(qǐng)求我們自己的服務(wù)器接口的時(shí)候需要帶上appID,用戶登陸后需要帶上openId
    推薦度:
    導(dǎo)讀mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼:我們安裝好flyio之后 npm install flyio 找到src目錄下的main.js文件 首先引入flyjs并實(shí)例化 var Fly=require(flyio/dist/npm/wx) var fly=new Fly 比方說我們每次請(qǐng)求我們自己的服務(wù)器接口的時(shí)候需要帶上appID,用戶登陸后需要帶上openId

    我們安裝好flyio之后

    npm install flyio

    找到src目錄下的main.js文件

    首先引入flyjs并實(shí)例化

    var Fly=require("flyio/dist/npm/wx")
    var fly=new Fly

    比方說我們每次請(qǐng)求我們自己的服務(wù)器接口的時(shí)候需要帶上appID,用戶登陸后需要帶上openId

    // 請(qǐng)求攔截
    fly.interceptors.request.use((request)=>{
     
     request.body.appId = 'xxx'
     // 用戶的openId在獲取之后添加到全局變量中如果存在,我們將它添加到請(qǐng)求參數(shù)里面
     let openId = Vue.prototype.globalData.openId;
     if(openId){
     request.body.openId = openId
     }
    })
    

    當(dāng)服務(wù)器發(fā)生錯(cuò)誤,或者用戶網(wǎng)絡(luò)錯(cuò)誤導(dǎo)致請(qǐng)求失敗的時(shí)候,我們可以添加一個(gè)響應(yīng)攔截

    // 響應(yīng)攔截
    fly.interceptors.response.use(
     (response) => {
     
     
     },
     (err) => {
     //發(fā)生網(wǎng)絡(luò)錯(cuò)誤后會(huì)走到這里
     //return Promise.resolve("ssss")
     wx.hideLoading();
     wx.showToast({
     title:'網(wǎng)絡(luò)不流暢,請(qǐng)稍后再試!',
     icon:'none',
     });
     
     })
    
    

    最后將flyjs掛載到vue的原型上

    // 將fly掛載在Vue的原型上
    Vue.prototype.$flyio = fly
    

    不同頁面直接使用this.$flyio請(qǐng)求(是不是很方便)

    示例:

    fly里面的攔截機(jī)制還是很強(qiáng)大的,并且在錯(cuò)誤返回信息做了優(yōu)化處理,在fly攔截器中支持執(zhí)行異步任務(wù),就是說在請(qǐng)求數(shù)據(jù)的時(shí)候如果攔截到token不存在那么我們就可以在攔截器中重新獲取token,再接著執(zhí)行之前的請(qǐng)求。

    const Fly = require("flyio/dist/npm/wx")
    const fly = new Fly
    Vue.prototype.$http = fly;
     
    fly.interceptors.request.use((request) => {
     //給所有請(qǐng)求添加自定義header
     if (api.Get('token')) {
     request.timeout = 30000,
     request.headers = {
     "content-type": "application/json",
     "cld.stats.page_entry": api.Get('scene'),
     "version": store.state.version,
     "token": api.Get('token')
     }
     wx.showLoading({
     title: "加載中",
     mask: true,
     });
     return request;
     } else {
     fly.lock();//鎖住請(qǐng)求
     return Public.Load().then(res => {
     request.timeout = 30000,
     request.headers = {
     "content-type": "application/json",
     "cld.stats.page_entry": api.Get('scene'),
     "version": store.state.version,
     "token": api.Get('token')
     }
     wx.showLoading({
     title: "加載中",
     mask: true,
     });
     //等待token返回之后在解鎖,
     fly.unlock();
     return request;//繼續(xù)之前的請(qǐng)求,
     })
     }
    })
     
    fly.interceptors.response.use(
     (response) => {
     wx.hideLoading();
     return response
     },
     (err) => {
     wx.hideLoading();
     if (err.status == 0) {
     return "網(wǎng)絡(luò)連接異常"
     } else if (err.status == 1) {
     return "網(wǎng)絡(luò)連接超時(shí)"
     } else if (err.status == 401) {
     return "用戶未登錄"
     } else {
     if (err.response.data.message) {
     return err.response.data.message
     } else {
     return '請(qǐng)求數(shù)據(jù)失敗,請(qǐng)稍后再試'
     }
     };
     // Do something with response error
     }
    )

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼

    mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼:我們安裝好flyio之后 npm install flyio 找到src目錄下的main.js文件 首先引入flyjs并實(shí)例化 var Fly=require(flyio/dist/npm/wx) var fly=new Fly 比方說我們每次請(qǐng)求我們自己的服務(wù)器接口的時(shí)候需要帶上appID,用戶登陸后需要帶上openId
    推薦度:
    標(biāo)簽: 攔截 js fly
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品亚洲不卡一区二区三区| 久久免费精品视频| 久久99国产精品一区二区| 日韩蜜芽精品视频在线观看| 日韩一级精品视频在线观看| 国产亚洲色婷婷久久99精品| 亚洲精品无码久久久| 黑人巨大精品欧美一区二区| 四虎影永久在线观看精品| 国产产无码乱码精品久久鸭| 亚洲欧美国产精品第1页| 精品午夜国产人人福利| 99riav国产精品| 四虎国产精品免费久久5151| 国产精品久久久久久久久| 精品无码一区二区三区亚洲桃色| 无码精品人妻一区二区三区影院 | 国产成人精品高清在线观看99| 日韩精品系列产品| 亚洲国产精品一区二区三区久久 | 国产精品电影在线| 91精品久久久久久无码| 午夜精品在线观看| 91精品婷婷国产综合久久| 久久99热国产这有精品| 99re66热这里只有精品| 99久久人妻无码精品系列 | 国产精品亚洲欧美大片在线观看| 国产精品美女久久久| 亚洲国产精品无码久久久不卡| 久久伊人精品青青草原日本| 久草欧美精品在线观看| 久久精品国产一区二区| 欧美成人精品欧美一级乱黄一区二区精品在线 | 国产精品无码一区二区在线| 国产精品日韩深夜福利久久| www亚洲欲色成人久久精品| 欧美亚洲国产成人精品| 国产99视频精品专区| 精品视频一区二区三区| 亚洲国产成人精品91久久久|