axios拦截器设置

2018-12-10  本文已影响0人  潼潼爱coding

应用场景:
1:每个请求都带上的参数,比如token,时间戳等。
2:对返回的状态进行判断,比如token是否过期

请求

axios.interceptors.request.use(
  config => {
    const xToken = getXToken()
    if (xToken !== null) {
      config.headers['X-Token'] = xToken
    }
    if (config.method === 'post') {
      config.data = {
        ...config.data, 
        _t: Date.parse(new Date()) / 1000, 
      }
    } else if (config.method === 'get') {
      config.params = {
         _t: Date.parse(new Date()) / 1000, 
         ...config.params 
      }
    }
    return config
  }, function (error) {
    return Promise.reject(error) 
  }
)

响应

axios.interceptors.response.use((res) => {
  // token 已过期,重定向到登录页面
  if (res.date.code === 4) {
    localStorage.clear()
    router.replace({
      path: '/sigin',
      query: {redirect: router.currentRoute.fullPath} 
    })
  }
  return res
}, function(err) {
  return Promise.reject(error) 
})
上一篇下一篇

猜你喜欢

热点阅读