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

时间:2023-03-09 17:58:26
axios 设置拦截器 全局设置带默认参数(发送 token 等)

应用场景:

1,每个请求都带上的参数,比如token,时间戳等。

2,对返回的状态进行判断,比如token是否过期

代码如下:

[javascript] view plain copy

  1. axios.interceptors.request.use( 
  2. config => { 
  3. var xtoken = getXtoken() 
  4. if(xtoken != null){ 
  5. config.headers['X-Token'] = xtoken 
  6. if(config.method=='post'){ 
  7. config.data = { 
  8. ...config.data, 
  9. _t: Date.parse(new Date())/1000, 
  10. }else if(config.method=='get'){ 
  11. config.params = { 
  12. _t: Date.parse(new Date())/1000, 
  13. ...config.params 
  14. return config 
  15. },function(error){ 
  16. return Promise.reject(error) 
  17. axios.interceptors.response.use(function (response) { 
  18. // token 已过期,重定向到登录页面
  19. if (response.data.code == 4){ 
  20. localStorage.clear() 
  21. router.replace({ 
  22. path: '/signin', 
  23. query: {redirect: router.currentRoute.fullPath} 
  24. }) 
  25. return response 
  26. }, function (error) { 
  27. // Do something with response error
  28. return Promise.reject(error) 
  29. })