axios拦截器,封装axios请求

我们从封装axios请求中来讲解拦截器

  • 首先引入axios
    import axios from 'axios'

  • 创建axios请求dolphinRequest

const dolphinRequest = axios.create({
  baseURL: ip地址
  timeout: 15000  //定义请求超时时长
})

*请求发送之前拦截(可以处理一些数据)

dolphinRequest.interceptors.request.use(
  config => {
    //统一设置请求头部信息
    config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'
    //判断请求方式是post还是get
    if (config.method === 'post') {
      config.data = qs.parse(config.data)
    }
    if (config.method === 'get') {
      config.params = { ...config.params }
      config.params = qs.parse(qs.stringify(config.params))
    }
   //数据根据请求方式进行拼接发送给后台
    return config
  },
  error => {
    // do something with request error
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

*后台相应之后的拦截(对接收的数据进行处理之后再使用)

dolphinRequest.interceptors.response.use(
  response => {
    const res = response.data
    if (res.code !== 200) {  //错误提示
      return Promise.reject(res.msg || 'Error')
    } else {  //成功返回数据
      return res
    }
  },
  error => {
    return Promise.reject(error)
  }
)
  • 导出封装好的axios,供外部使用
    export { dolphinRequest }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。