axios 设置拦截器 全局设置带默认参数(发送 token 等)

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

axios.interceptors.request.use( 
        config => { 
            var 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(function (response) { 
    // token 已过期,重定向到登录页面
    if (response.data.code == 4){ 
        localStorage.clear() 
        router.replace({ 
            path: '/signin', 
            query: {redirect: router.currentRoute.fullPath} 
        }) 
    } 
    return response 
}, function (error) { 
    // Do something with response error
    return Promise.reject(error) 
}) 
复制代码

转载于:https://juejin.im/post/5bd27563518825289f7f3cdb

你可能感兴趣的:(axios 设置拦截器 全局设置带默认参数(发送 token 等))