axios.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import axios from 'axios'
  2. import {Message} from 'element-ui'
  3. import {
  4. getToken,
  5. setToken
  6. } from './auth.js'
  7. import qs from 'qs'
  8. const service = axios.create({
  9. baseURL: process.env.VUE_APP_BASE_API, // api的base_url
  10. timeout: 10000,
  11. headers: {
  12. 'Content-Type': 'application/x-www-form-urlencoded'
  13. },
  14. transformRequest: [function(data) {
  15. return qs.stringify(data)
  16. }]
  17. })
  18. service.interceptors.request.use(
  19. config => {
  20. // if (getToken()) {
  21. // config.headers['A-Token'] = getToken()
  22. config.headers['A-Token'] = ' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC90ZXN0LWRpbmcuZzEwNy5jb21cL2FwaVwvdGVzdCIsImlhdCI6MTU5ODYwOTY1OSwiZXhwIjoxNTk5MjA5NjU5LCJuYmYiOjE1OTg2MDk2NTksImp0aSI6ImZLVXRKRUFmUkZwT3E4Y2kiLCJzdWIiOjIsInBydiI6ImNhNjQ4OWQ1MGYyNDA3YTY3ODMwZTgwOTBkMDE0ODgzNTY4NTk2MmIiLCJyb2xlIjoiZW1wbG95ZWUifQ.m6Za4eUubFK6SbQxqdJ50tmlbjGzIeQXpTocwNirYog'
  23. // }
  24. return config
  25. },
  26. error => {
  27. Promise.reject(error)
  28. }
  29. )
  30. // respone interceptor
  31. service.interceptors.response.use(
  32. response => {
  33. if (response.data.code === 1) {
  34. if (response.data.refresh_token) {
  35. if (response.data.refresh_token !== getToken()) {
  36. setToken(response.data.refresh_token);
  37. }
  38. }
  39. return response;
  40. } else if (response.data.code === 401) {
  41. Message({
  42. message: response.data.msg,
  43. type: 'error',
  44. })
  45. return Promise.reject('error')
  46. }else{
  47. Message({
  48. message: response.data.msg,
  49. type: 'error',
  50. })
  51. return Promise.reject('error')
  52. }
  53. },
  54. error => {
  55. Message({
  56. message: error.message,
  57. type: 'error',
  58. })
  59. return Promise.reject(error)
  60. }
  61. )
  62. export default service