如何更优雅的使用axios统一处理请求和响应

对于新手写vue项目,使用axios可能最常用的使用方式这样的



把axios注入到VUE。这样可以通过this调用。但是这样使用每次要this.$htpp('url',data).then().cacht()

(这里的token是写后台项目,通过请求头发给后台验证的)

这样写起来每次要处理请求错误信息,而且也不利于自动化测试。

这些的原因可能是大多数教程都是这么教的原因吧。

反正我以前也是这么写的。

今天要和大家分享我的使用方法,如下(图)源码再后面:


每次请求之前拦截,把token塞到请求头再发送。

每次响应前拦截,如果是成功的请求直接把结果return,如果是错误请求就把错误显示出来。这样就可以实现错误统一管理,调用请求的时候就不用cacht错误了

import axios from 'axios'import { getToken } from '@/utils/auth'import { Notification } from 'element-ui'
const service = axios.create({  baseURL: '/basic',  timeout: 5000,  headers: {    'Content-Type': 'application/json'  }})
// 请求 拦截service.interceptors.request.use(  config => {     config.headers['Authorization'] = getToken()    return config  },  error => {    console.log(error)    Promise.reject(error)  })
// 响应 拦截service.interceptors.response.use(  response => {    return response  },  error => {    const data = error.response.data    Notification.error({      title: '错误',      message: data.message    })    return Promise.reject(data)  })
export default service
复制代码

下面分享统一管理API,这样有利于自动化测试和管理API接口


(我这里登录密码用了MD5加密的)

把每个请求写成一个函数 export 出去

调用的时候只需要

login(username, loginInfo.password, loginInfo.captcha).then(res => {    console.log(`响应的数据:${res}`)})复制代码


是不是很简单

其实写代码之前,怎么设计代码很重要,应该尽量做到一个功能一个文件一个接口


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值