axios拦截器常用错误拦截

发布于 2020-12-23  100 次阅读


因工作需要结合axios封装一些常见状态码

import axios from 'axios'
// service是继承自axios
const service = axios.create({
  baseURL: 'http://192.168.88.191:20000',
  timeout: 1000 * 60
})

service.interceptors.request.use(

  config => {
    if (token) {
      config.headers.common.Authorization = token // token值
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

service.interceptors.response.use(

  response => {
    return response.data
  },
  error => {
    let errorMessage
    // console.log('err', error.response)

    if (
      error.response
    ) {
      switch (error.response.status) {
        case 400: errorMessage = '请求错误(400)'
          break
        case 401: errorMessage = '未授权,请重新登录(401)'
          break
        case 403: errorMessage = '拒绝访问(403)'
          break
        case 404: errorMessage = '请求出错(404)'
          break
        case 408: errorMessage = '请求超时(408)'
          break
        case 500: errorMessage = '服务器错误(500)'
          break
        case 501: errorMessage = '服务未实现(501)'
          break
        case 502: errorMessage = '网络错误(502)'
          break
        case 503: errorMessage = '服务不可用(503)'
          break
        case 504: errorMessage = '网络超时(504)'
          break
        case 505: errorMessage = 'HTTP版本不受支持(505)'
          break
        default: errorMessage = '其他错误!'
      }
    } else if (error.message === 'Network Error') {
      errorMessage = '网络错误!'
    }
    return Promise.reject(errorMessage)
  }
)

export default service



我们总是担心自己不够好,殊不知,当我们踏出去的时候,便是
最好的自己