request.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import axios from 'axios'
  2. import Cookies from 'js-cookie'
  3. axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
  4. // 创建axios实例
  5. const service = axios.create({
  6. baseURL: '/',
  7. // 超时
  8. timeout: 10000
  9. })
  10. // request拦截器
  11. service.interceptors.request.use(
  12. (config) => {
  13. config.headers['Authorization'] = 'Bearer ' + Cookies.get('Admin-Token')
  14. return config
  15. },
  16. (error) => {
  17. console.log(error)
  18. Promise.reject(error)
  19. }
  20. )
  21. // 响应拦截器
  22. service.interceptors.response.use(
  23. (res) => {
  24. // 未设置状态码则默认成功状态
  25. const code = res.data.code || 200
  26. // 获取错误信息
  27. const msg = res.data.msg
  28. // 二进制数据则直接返回
  29. if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
  30. return res.data
  31. }
  32. if (code === 401) {
  33. return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
  34. } else if (code === 500) {
  35. // ElMessage({ message: msg, type: 'error' })
  36. return Promise.reject(new Error(msg))
  37. } else if (code === 601) {
  38. // ElMessage({ message: msg, type: 'warning' })
  39. return Promise.reject(new Error(msg))
  40. } else if (code !== 200) {
  41. // ElNotification.error({ title: msg })
  42. return Promise.reject('error')
  43. } else {
  44. return Promise.resolve(res.data)
  45. }
  46. },
  47. (error) => {
  48. console.log('err' + error)
  49. let { message } = error
  50. if (message == 'Network Error') {
  51. message = '后端接口连接异常'
  52. } else if (message.includes('timeout')) {
  53. message = '系统接口请求超时'
  54. } else if (message.includes('Request failed with status code')) {
  55. message = '系统接口' + message.substr(message.length - 3) + '异常'
  56. }
  57. return Promise.reject(error)
  58. }
  59. )
  60. export default service