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)
})