项目中Axios二次封装实例Demo

下面我将详细讲解"项目中Axios二次封装实例Demo"的完整攻略。

首先,我们需要明确的是Axios是一个重要的HTTP库,用来发送AJAX请求,其具有易用的API、自动转换的JSON数据、客户端和服务端程序员可使用的promise等特性。

但是,在实际的项目中,我们可能需要对Axios进行二次封装,以便我们更好的处理业务逻辑。因此,我们需要遵循以下的步骤来实现这一目标:

步骤一:创建封装函数

import axios from 'axios'

// 创建axios实例
const service = axios.create({
  timeout: 5000 // 请求超时时间
})

// 错误处理函数
const errorHandle = (status, other) => {
  // 状态码判断
  switch (status) {
    case 400:
      console.log('信息校验失败')
      break
    case 401:
      console.log('认证失败')
      break
    case 403:
      console.log('token校验失败')
      break
    case 404:
      console.log('请求的资源不存在')
      break
    default:
      console.log(other);  
  }}

// 请求拦截器
service.interceptors.request.use(
  config => {
    // 添加请求头信息
    config.headers.Authorization = sessionStorage.getItem('token')
      ? sessionStorage.getItem('token')
      : ''
    return config
  },
  error => {
    Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    // 在此处对返回的数据进行处理
    return Promise.resolve(response.data)
  },
  error => {
    // 获取错误码
    const { response } = error
    if (response) {
      errorHandle(response.status, response.data.other)
      return Promise.reject(response.data)
  } else {
      console.log('连接到服务器失败')
  }
})

export default service

步骤二:调用封装函数

import service from './service.js'

service
  .post('/api/user/register', {
    username: 'test',
    password: '111111'
  })
  .then(res => {
    console.log(res)
  })
  .catch(err => {
    console.log(err)
  })

以上示例中,我们首先创建了一个名为service的axios实例,然后对它进行了二次封装。接下来,在我们的具体业务代码中,只需要调用service实例并使用其中的方法即可发送AJAX请求。如果出现错误,我们也可以在拦截器中进行捕获、处理和返回。

总的来说,上述实例提供了一个二次封装Axios的通用模板,可以在项目中使用和扩展。您可以根据项目需求进行自由组合、拓展,以便我们更好地处理业务逻辑。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:项目中Axios二次封装实例Demo - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • sql语句关联查询

    SQL语句关联查询 在进行数据查询操作时,经常会涉及到多张表之间的关联。SQL中就提供了关联查询的语法,用于查询多张表中的相关数据。本文将介绍SQL语句中的关联查询,以及常见的关联查询类型及示例。 关联查询的基本语法 SQL中通过JOIN语句实现关联查询,JOIN有多种类型,包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUT…

    其他 2023年3月28日
    00
  • 关于Spring启动流程及Bean生命周期梳理

    关于Spring启动流程及Bean生命周期梳理 Spring启动流程 在Spring应用程序启动时,Spring框架会完成一系列的初始化工作。具体而言,Spring启动流程如下: 加载配置文件:Spring框架首先会读取应用程序中的配置文件。对于基于XML的配置来说,通常是读取applicationContext.xml文件。对于基于Java的配置来说,通常…

    other 2023年6月27日
    00
  • 如何获得ios7开发者账号申请方法

    如何获得IOS7开发者账号申请方法 步骤一:访问开发者网站 要申请iOS开发账号,需要访问苹果的开发者网站。在浏览器里输入网址(https://developer.apple.com/),按下回车键。 步骤二:注册账号 在访问开发者网站后,用户需要创建一个账号,以便申请iOS开发者账号。 点击右上角的人型图标,选择 “Create Apple ID”。 根据…

    other 2023年6月26日
    00
  • Java 的访问修饰符public,protected,private(封装、继承)

    关于Java的访问修饰符public、protected、private,涉及封装、继承的相关知识点,下面为您详细演示: 1. Java中的访问修饰符 Java提供了4种访问修饰符,分别是: public:公共的,可以被所有类访问,无访问限制。 protected:受保护的,只能被本类、同包内以及其它包中的子类访问。 default:(没有修饰符)默认的,在…

    other 2023年6月25日
    00
  • 一篇文章带你入门C语言数据结构:绪论

    那么让我们来详细讲解一下如何通过“一篇文章带你入门C语言数据结构:绪论”这篇文章来学习C语言数据结构。 一、文章简介 “一篇文章带你入门C语言数据结构:绪论”是一篇介绍C语言数据结构的入门级文章,它包含了数据结构基础概念、C语言语法基础、算法基础等内容,具有很高的通用性和实用性,很适合初学者来进行学习与掌握。 二、文章内容 1. 数据结构基础概念 本文首先从…

    other 2023年6月27日
    00
  • iOS AFNetworking各种功能封装类代码

    iOS AFNetworking 各种功能封装类代码攻略 什么是 AFNetworking? AFNetworking 是一个 iOS & macOS 平台上的网络请求框架,它是由 Objective-C 编写而成,是一个轻量级的网络库,提供了 URLSession API 不具备的高级别的抽象。AFNetworking 已经被 iOS 开发者广泛应…

    other 2023年6月25日
    00
  • eclipse安装git插件

    Eclipse安装Git插件攻略 Git是一种流行的版本控制系统,而Eclipse是一种流行的集成开发环境(IDE)。在Eclipse中安装Git插件可以让您更方便地使用Git进行版本控制。以下是在Eclipse中安装Git插件的完整攻略,包括两个示例说明。 步骤 打开Eclipse,选择“Help”菜单,然后选择“Eclipse Marketplace”选…

    other 2023年5月8日
    00
  • mysql存数组的实例代码和方法

    要在 MySQL 中存储数组,可以使用 JSON 格式来存储。下面是一些示例代码和方法: 方法1:使用JSON字段存储数组 可以创建一个名为 items 的 JSON 字段来存储数组。例如,我们有一个名为 order 的表格,希望存储每个订单的商品列表。可以创建一个名为 items 的 JSON 字段来存储商品列表,并使用以下代码插入一行新记录: INSER…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部