欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue-resource 攔截器使用詳解

 更新時間:2017年02月21日 17:11:46   作者:杜培東  
本篇文章主要介紹了vue-resource 攔截器使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在vue項目使用vue-resource的過程中,臨時增加了一個需求,需要在任何一個頁面任何一次http請求,增加對token過期的判斷,如果token已過期,需要跳轉至登錄頁面。如果要在每個頁面中的http請求操作中添加一次判斷,那么會是一個非常大的修改工作量。那么vue-resource是否存在一個對于任何一次請求響應捕獲的的公共回調函數(shù)呢?答案是有的!

vue-resource的interceptors攔截器的作用正是解決此需求的妙方。在每次http的請求響應之后,如果設置了攔截器如下,會優(yōu)先執(zhí)行攔截器函數(shù),獲取響應體,然后才會決定是否把response返回給then進行接收。那么我們可以在這個攔截器里邊添加對響應狀態(tài)碼的判斷,來決定是跳轉到登錄頁面還是留在當前頁面繼續(xù)獲取數(shù)據。

下邊代碼添加在main.js中

Vue.http.interceptors.push((request, next) => {
 console.log(this)//此處this為請求所在頁面的Vue實例
 // modify request
 request.method = 'POST';//在請求之前可以進行一些預處理和配置

 // continue to next interceptor

  next((response) => {//在響應之后傳給then之前對response進行修改和邏輯判斷。對于token時候已過期的判斷,就添加在此處,頁面中任何一次http請求都會先調用此處方法

    response.body = '...';
    return response;

 });
});

在知道此方法之前,鄙人想了一個笨方法,但是也能在一定程度上降低修改工作量。方法是為Vue綁定一個this.$$http.get方法取代this.$http.get方法,每個頁面的http請求添加個$在$http前即可。

// ajax.js
function plugin(Vue){
  Object.defineProperties(Vue.prototype,{
    $$http:{
      get(){
        return option(Vue);
      }
    }
  })
}
function option(Vue){
  let v = new Vue();
  return {
    get(a,b){
      let promise = new Promise(function(reslove,reject){
        v.$http.get(a,b).then((res)=>{
          reslove(res)
        },(err)=>{
            //處理token過期問題。
        })
      })
      return promise;
    }
  }
}
module.exports=plugin;


//main.js

import ajax from './ajax.js'
Vue.use(ajax)

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

相關文章

  • 一文詳細聊聊vue3的defineProps、defineEmits和defineExpose

    一文詳細聊聊vue3的defineProps、defineEmits和defineExpose

    vue3官方文檔defineProps和defineEmits都是只能在scriptsetup中使用的編譯器宏,下面這篇文章主要給大家介紹了關于vue3的defineProps、defineEmits和defineExpose的相關資料,需要的朋友可以參考下
    2023-02-02
  • 詳解vue-router和vue-cli以及組件之間的傳值

    詳解vue-router和vue-cli以及組件之間的傳值

    這篇文章主要介紹了詳解vue-router和vue-cli以及組件之間的傳值,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 用vuex寫了一個購物車H5頁面的示例代碼

    用vuex寫了一個購物車H5頁面的示例代碼

    本篇文章主要介紹了用vuex寫了一個購物車H5頁面的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • 使用vue控制元素顯示隱藏方式

    使用vue控制元素顯示隱藏方式

    這篇文章主要介紹了使用vue控制元素顯示隱藏方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue中跳轉界面的3種實現(xiàn)方法

    vue中跳轉界面的3種實現(xiàn)方法

    這篇文章主要給大家介紹了關于vue中跳轉界面的3種實現(xiàn)方法,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • vue中render函數(shù)的使用詳解

    vue中render函數(shù)的使用詳解

    這篇文章主要介紹了vue中render函數(shù)的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 詳解如何提高 webpack 構建 Vue 項目的速度

    詳解如何提高 webpack 構建 Vue 項目的速度

    這篇文章主要介紹了詳解如何提高 webpack 構建 Vue 項目的速度,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Vue數(shù)組的劫持逐步分析講解

    Vue數(shù)組的劫持逐步分析講解

    小編這次要給大家分享的是如何實現(xiàn)vue2.x數(shù)組劫持,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲
    2023-01-01
  • Vue實現(xiàn)點擊箭頭上下移動效果

    Vue實現(xiàn)點擊箭頭上下移動效果

    這篇文章主要介紹了Vue實現(xiàn)點擊箭頭上下移動效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 關于Element-ui中Table表格無法顯示的問題及解決

    關于Element-ui中Table表格無法顯示的問題及解決

    這篇文章主要介紹了關于Element-ui中Table表格無法顯示的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論