自定義的請求攔截

// 引入axios
import axios from 'axios'

import store from '../store'
// 創建一個axios的實例 請求的真整地址就會拼接到baseURL後面
/*
* 例如,如果我們在其他地方使用了我們export default的instance  的時候,所有的客戶端請求都回先經過歐文們
*自定義的請求攔截器
* 所有的接口返回值都會先經過我們自定義的返回攔截器
* */
const instance = axios.create({
  baseURL: '封裝的請求的地址',
  // 請求超時的時間
  timeout: 5000
})
// 請求攔截器
instance.interceptors.request.use(
  config => {
    // 可以先判斷store裏面的token是否有值,要是沒有token的話就直接請求攔截
    if (store.state.token) {
      config.headers.token = store.state.token
    }
    return config
  },
  err => {
    console.log('err請求攔截報錯', err)
    return Promise.reject(err)
  }
)
// 請求返回的攔截,所有的請求安撫你會的數據都會先經過這個方法。
instance.interceptors.response.use(
  response => {
  // response 就是接口返回的值
    const res = response.data
    // 可以自定義返回的code的值,對於不同的code,做出不同的響應攔截
    // 我們可以自定定義返
    if (res.code === 404) {
    // 這個是後我們就可以根據後臺返回的404去做頁面的跳轉
    // 比如說我們可以跳轉到我們定義好的404界面
    } else {
      return res
    }
  },
  err => {
    // 攔截錯誤
    console.log('err', err)
    return Promise.reject(err)
  }
)

export default instance
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章