<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答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
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

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

        來(lái)源:懂視網(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 比方說(shuō)我們每次請(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 比方說(shuō)我們每次請(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

        比方說(shuō)我們每次請(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
        

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

        示例:

        fly里面的攔截機(jī)制還是很強(qiáng)大的,并且在錯(cuò)誤返回信息做了優(yōu)化處理,在fly攔截器中支持執(zhí)行異步任務(wù),就是說(shuō)在請(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)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wè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 比方說(shuō)我們每次請(qǐng)求我們自己的服務(wù)器接口的時(shí)候需要帶上appID,用戶登陸后需要帶上openId
        推薦度:
        標(biāo)簽: 攔截 js fly
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 97在线观免费视频观看| 99在线精品视频观看免费| 国产18禁黄网站免费观看| 精品国产日韩亚洲一区在线| 国产啪精品视频网免费| 亚洲成a人片在线观看精品| 无码专区永久免费AV网站 | 区久久AAA片69亚洲| 一级黄色毛片免费看| 中文字幕一精品亚洲无线一区| 一级做a爱过程免费视| 亚洲精品tv久久久久久久久| 久章草在线精品视频免费观看| 久久亚洲精品成人777大小说| 18女人毛片水真多免费| 亚洲乱码一二三四区麻豆| 免费高清在线影片一区| 免费视频精品一区二区| 亚洲精品午夜国产VA久久成人| 国产免费阿v精品视频网址| 亚洲一区二区电影| 无码专区永久免费AV网站| 男人的天堂av亚洲一区2区| 亚洲人成无码网WWW| 未满十八18禁止免费无码网站| 亚洲一级免费毛片| 国产乱人免费视频| a级在线免费观看| 亚洲男人的天堂在线| 国产精品无码素人福利免费| 国产人成网在线播放VA免费| 亚洲一本综合久久| 日韩免费观看的一级毛片| 精品熟女少妇aⅴ免费久久| 亚洲精品在线播放视频| 免费国产a国产片高清| 成人免费区一区二区三区| 亚洲中文字幕精品久久| 夜夜春亚洲嫩草影院| 69成人免费视频无码专区| eeuss影院免费直达入口|