axios二次封装

参考官网文档:起步 | Axios中文文档 | Axios中文网

1.安装axios

$ npm install axios

2.在src目录下创建utils/request.js文件

3.引入axios,并创建一个axios实例

import axios from 'axios'

const instance = axios.create({
  // 用于请求的服务器 URL
  baseURL: 'https://some-domain.com/api/',
  // `timeout` 指定请求超时的毫秒数。
  // 如果请求时间超过 `timeout` 的值,则请求会被中断
  timeout: 10000,
})

4.配置拦截器--注意实例名称一致(我这里的名称是instance)

// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前判断是否存在token
    const token = localStorage.getItem('pz_token')
    //不需要添加token的api
    const whiteUrl = ['/login']

    if (token && !whiteUrl.includes(config.url)) {
      config.headers['x-token'] = token
    }
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    //对于接口异常的数据对用户进行提示
    if (response.data.code === -1) {
      ElMessage.warning(response.data.message)
    }
    return response
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)

5.不要忘记导出axios实例

export default instance

6.在api文件中统一定义接口,在src目录下创建api/index.js文件

7.引入request文件,并定义接口---根据接口内容定义

/** @format */

import request from '../utils/request.js'

//发送验证码
export const getCode = (data) => {
  return request.post('/get/code', data)
}

8.在代码中调用接口

import { getCode } from '../../api'
//发送验证码
  getCode({ tel: loginForm.userName }).then(({ data }) => {
    console.log('data:', data)
    if (data.code === 10000) {
      ElMessage({
        message: '发送成功',
        type: 'success',
      })
    }
  })

完成✅

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值