封装axios大体思路

本文详细介绍了如何在前端项目中引入axios库,并设置请求和响应拦截器来处理请求头、token管理和错误状态码的处理。登录场景中,表单验证成功后,通过axios发送登录请求,成功则存储token和用户信息,失败则根据状态码进行相应操作,如未登录则重定向至登录页面。
摘要由CSDN通过智能技术生成

引入axios

引入localstroge (utils中的工具类)

添加请求拦截器

	主要处理请求头(发送给后端),例如token,(在每次请求前都要携带token),还有其他自定义的请求头

添加响应拦截器

	处理响应数据

添加错误请求函数

	根据返回的状态码判断各种状态,比如403,状态失效,清空localstroge,其他状态码动态显示返回的msg信息,最终重定向login页面	...等等操作

添加成功请求函数

	也是根据状态码判断,比如code==40000 表示未登录,跳转到/login	...等等操作

最终定义函数,返回promise,export 这个函数名

函数参数:就是调用接口时传递的data+定义接口时的默认参数
函数内容:
定义公共参数
定义请求参数(axios的配置,method,baseURL,url,responseType,timeout等)
定义meta,将meta(请求接口时传data,meta),meta是对象,直接赋值给headers,此时相当于给headers初始化。

最后:

const promise = new Promise((resolve, reject) => {
    axios(httpDefaultOpts).then(response => {
      handleSuccess(response, resolve, opts)
    }).catch(error => {
      handleError(error, reject, opts)
    })
  })
  return promise

登录页面点击登录按钮后

1 首先校验表单规则,校验成功后,请求接口
2 接口传入表单数据,meta等字段
3 请求成功后,拿到成功的数据,将token expiretime等存入store中
4 store中的mutation将val值存入localstorage中,将用户信息也存入store中,且存入localstorage中

二次封装axios思路是为了能够更好地使用请求拦截器和响应拦截器。首先,创建一个api文件夹,然后在其中创建一个request.js文件用于编写axios的二次封装代码。在request.js中,首先导入axios,并使用axios.create方法创建一个axios实例,配置一些基本属性如基础路径和请求超时时间。接下来,可以对请求拦截器进行操作,通过requests.interceptors.request.use方法,在请求发出之前做一些操作,如设置请求头。然后,可以对响应拦截器进行操作,使用requests.interceptors.response.use方法,对成功和失败的响应进行处理。最后,将requests(axios的二次封装)进行导出,以便在其他地方使用。二次封装axios的目的是为了更好地处理请求和响应,可以在发请求之前和响应返回后进行一些额外的操作或处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [axios二次封装(详细+跨域问题)](https://blog.csdn.net/qq_48968669/article/details/124356249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Vue全局loading及错误提示的思路与实现](https://download.csdn.net/download/weixin_38514872/13610587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值