最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Vue網(wǎng)絡(luò)請(qǐng)求之interceptors實(shí)際應(yīng)用

 更新時(shí)間:2018年02月28日 11:22:25   作者:_DangJin  
這篇文章主要介紹了淺談Vue網(wǎng)絡(luò)請(qǐng)求之interceptors實(shí)際應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

項(xiàng)目背景

最近在項(xiàng)目開發(fā)中,遇到下面這樣一個(gè)問題:

  1. 在進(jìn)行銘感操作之前,每個(gè)請(qǐng)求需要攜帶token,但是token 有有效期,token 失效后需要換取新的token并繼續(xù)請(qǐng)求。

需求分析

  1. 每個(gè)請(qǐng)求都需要攜帶 token ,所以我們可以使用 axios request 攔截器,在這里,我們給每個(gè)請(qǐng)求都加 token,這樣就可以節(jié)省每個(gè)請(qǐng)求再一次次的復(fù)制粘貼代碼。
  2. token 失效問題,當(dāng)我們token 失效,我們服務(wù)端會(huì)返回一個(gè)特定的錯(cuò)誤表示,比如 token invalid,但是我們不能在每個(gè)請(qǐng)求之后去做刷新 token 的操作呀,所以這里我們就用 axios response 攔截器,我們統(tǒng)一處理所有請(qǐng)求成功之后響應(yīng)過來的數(shù)據(jù),然后對(duì)特殊數(shù)據(jù)進(jìn)行處理,其他的正常分發(fā)。

功能實(shí)現(xiàn)

分析完問題后,我們來實(shí)現(xiàn)功能

安裝axios, 這里我們就贅述怎么安裝axios.

在 main.js 注冊(cè) axios

Vue.use(Vuex)
Vue.use(VueAxios, axios)
Vue.use(qs)

注:qs,使用axios,必須得安裝 qs,所有的Post 請(qǐng)求,我們都需要 qs,對(duì)參數(shù)進(jìn)行序列化。

在 request 攔截器實(shí)現(xiàn)

axios.interceptors.request.use(
 config => {
  config.baseURL = '/api/'
  config.withCredentials = true // 允許攜帶token ,這個(gè)是解決跨域產(chǎn)生的相關(guān)問題
  config.timeout = 2500
  let token = sessionStorage.getItem('access_token')
  let csrf = store.getters.csrf
  if (token) {
   config.headers = {
    'access-token': token,
    'Content-Type': 'application/x-www-form-urlencoded'
   }
  }
  if (config.url === 'refresh') {
   config.headers = {
    'refresh-token': sessionStorage.getItem('refresh_token'),
    'Content-Type': 'application/x-www-form-urlencoded'
   }
  }
  return config
 },
 error => {
  return Promise.reject(error)
 }
)

在 response 攔截器實(shí)現(xiàn)

axios.interceptors.response.use(
 response => {
  // 定時(shí)刷新access-token
  if (!response.data.value && response.data.data.message === 'token invalid') {
   // 刷新token
   store.dispatch('refresh').then(response => {
    sessionStorage.setItem('access_token', response.data)
   }).catch(error => {
    throw new Error('token刷新' + error)
   })
  }
  return response
 },
 error => {
  return Promise.reject(error)
 }
)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue動(dòng)態(tài)生成el-checkbox點(diǎn)擊無法賦值的解決方法

    Vue動(dòng)態(tài)生成el-checkbox點(diǎn)擊無法賦值的解決方法

    這篇文章主要給大家介紹了關(guān)于Vue動(dòng)態(tài)生成el-checkbox點(diǎn)擊無法賦值的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • vue2路由表中異步加載組件命名方式

    vue2路由表中異步加載組件命名方式

    這篇文章主要介紹了vue2路由表中異步加載組件命名方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue 解除鼠標(biāo)的監(jiān)聽事件的方法

    vue 解除鼠標(biāo)的監(jiān)聽事件的方法

    這篇文章主要介紹了vue 解除鼠標(biāo)的監(jiān)聽事件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 詳解Vue3子組件向父組件傳遞消息

    詳解Vue3子組件向父組件傳遞消息

    這篇文章主要介紹了Vue3子組件向父組件傳遞消息,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Vue 攔截器對(duì)token過期處理方法

    Vue 攔截器對(duì)token過期處理方法

    下面小編就為大家分享一篇Vue 攔截器對(duì)token過期處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 淺談Vue.js中的v-on(事件處理)

    淺談Vue.js中的v-on(事件處理)

    本篇文章主要介紹了Vue.js中的v-on(事件處理),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • VUE插件vue-treeselect的使用及說明

    VUE插件vue-treeselect的使用及說明

    這篇文章主要介紹了VUE插件vue-treeselect的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-07-07
  • Vue router/Element重復(fù)點(diǎn)擊導(dǎo)航路由報(bào)錯(cuò)問題及解決

    Vue router/Element重復(fù)點(diǎn)擊導(dǎo)航路由報(bào)錯(cuò)問題及解決

    這篇文章主要介紹了Vue router/Element重復(fù)點(diǎn)擊導(dǎo)航路由報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue金融數(shù)字格式化(并保留小數(shù))數(shù)字滾動(dòng)效果實(shí)現(xiàn)

    Vue金融數(shù)字格式化(并保留小數(shù))數(shù)字滾動(dòng)效果實(shí)現(xiàn)

    這篇文章主要介紹了Vue金融數(shù)字格式化(并保留小數(shù)) 數(shù)字滾動(dòng)效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vant-List-@load事件一直觸發(fā)的解決

    vant-List-@load事件一直觸發(fā)的解決

    這篇文章主要介紹了vant-List-@load事件一直觸發(fā)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評(píng)論

鄂托克前旗| 噶尔县| 东阿县| 克山县| 淮南市| 濮阳县| 黄大仙区| 沙雅县| 恭城| 大石桥市| 新田县| 南投市| 玛多县| 湖州市| 卢氏县| 福建省| 乐安县| 文成县| 中阳县| 遂宁市| 沂源县| 桓台县| 嘉兴市| 临泽县| 潍坊市| 昌吉市| 永新县| 崇文区| 会昌县| 三台县| 陵川县| 泰和县| 剑阁县| 礼泉县| 河北区| 襄樊市| 米泉市| 临漳县| 大埔县| 花莲市| 嘉兴市|