“超越传统的HTTP请求:深度解析Axios,打造前端开发的终极利器“

news2025/3/13 15:38:41

  

解锁前端开发的新境界 - 深入探索Axios,构建卓越的互联网应用

在当今数字化世界中,互联网应用的需求日益增长,而无论是大型企业还是初创公司,都需要一个强大而可靠的工具来处理与后端服务器之间的通信。这就是Axios的光辉时刻。作为前端开发者,你肯定想了解如何精确地发起HTTP请求、处理响应、拦截错误和优化性能。

幸运的是,本文将带你踏上一场关于Axios的深度探索之旅。我们将揭开Axios的神秘面纱,学习如何使用它的简洁且优雅的API,以及如何利用其强大的功能构建卓越的互联网应用。无论你是经验丰富的开发者还是初学者,这篇文章将为你提供宝贵的见解和技巧,助你在前端开发的道路上更进一步。

准备好迎接前端开发的新挑战了吗?让我们一同探索Axios的奥秘,为你的互联网应用注入更多的效率和高质量!

 

普通搭建

安装依赖

安装axios

cnpm install --save axios



安装querystring

cnpm install --save querystring


        

引入

局部引入

import axios from "axios"



全局引入【app.config.globalProperties】
main.js

import axios from "axios"
app.config.globalProperties.$axios = axios


组件使用

import { getCurrentInstance } from "vue"
const { proxy } = getCurrentInstance();
proxy.$axios.get()..



全局引入【利用Provide和Inject】
main.js

import axios from "axios"
app.provide("axios",axios)


组件使用

import { inject } from "vue"
const axios = i


          

使用

get请求

axios.get("xxx")
    .then(res => {
        console.log(res.data)
    })
    .catch(error => {
        console.log(error)
    })



get请求【带参】

axios.get("xxx", {
    params: {
        age: "1"
    }
})



post请求

axios.post("xxx", qs.stringify({
    id: "1",
}))

封装搭建

安装依赖

安装axios

cnpm install --save axios



安装querystring

cnpm install --save querystring


        
    
        

封装axios

src / api / request.js

import axios from "axios"
import qs from "querystring"

/**
 * 创建Axios对象
 */
const instance = axios.create({
    //baseURL: "http://localhost:8030",
    baseURL: "http://118.31.60.184:8030",
    timeout: 5000,//配置5s超时
    withCredentials: true//访问允许携带cookie
})
/**
 * 响应失败处理器
 */
const errorHandle = (status, info) => {
    switch (status) {
        case 400:
            console.log("语义错误");
            break;
        case 401:
            console.log("服务器认证失败");
            break;
        case 403:
            console.log("服务器请求拒绝执行");
            break;
        case 404:
            console.log("请检查网路请求地址");
            break;
        case 500:
            console.log("服务器发生意外");
            break;
        case 502:
            console.log("服务器无响应");
            break;
        default:
            console.log(info);
            break;
    }
}
/**
 * 请求拦截器
 */
instance.interceptors.request.use(
    config => {
        if (config.method === 'post') {
            // POST接收的网络请求参数需要进行格式转化
            config.data = qs.stringify(config.data)
        }
        return config
    },
    error => Promise.reject(error)
)
/**
 * 响应拦截器
 */
instance.interceptors.response.use(
    response => response.status === 200 ? Promise.resolve(response) : Promise.reject(response),
    error => {
        const {response} = error;
        if (response) {
            errorHandle(response.status, response.info)
        } else {
            console.log("网络请求失败");
        }
    }
)

export default instance        

封装接口

src / api / index.js

import axios from "./request"

const permission = {
    search: "/sys/permission/search",
    add: "/sys/permission/add",
    update: "/sys/permission/update",
    delete: "/sys/permission/delete",
    findById: "/sys/permission/findById",
}
const api = {
    permission_search(params) {
        return axios.get(permission.search, {params})
    },
    permission_add(params) {
        return axios.post(permission.add, params)
    },
    permission_update(params) {
        return axios.post(permission.update, params)
    },
    permission_delete(params) {
        return axios.delete(permission.delete, {params})
    },
    permission_findById(params) {
        return axios.get(permission.findById, {params})
    }
}
export default api            

使用

引入

import axios from "../../api/index.js"



使用

axios.permission_search({
    search: search,
    page: page,
    size: size
})
axios.permission_add({
    permissionName: addFormInfo.permissionName,
    permissionDesc: addFormInfo.permissionDesc,
})
axios.permission_findById({
    pid: row.pid
})
axios.permission_update({
    pid: editorFormInfo.pid,
    permissionName: editorFormInfo.permissionName,
    permissionDesc: editorFormInfo.permissionDesc,
})
axios.permission_delete({
    pid: row.pid
})


          

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/883969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

53.Linux day03 文件查看命令,vi/vim常用命令

今天进行了新的学习。 目录 1.cat a.查看单个文件的内容: b.查看多个文件的内容: c.将多个文件的内容连接并输出到一个新文件: d.显示带有行号的文件内容: 2.more 3.less 4.head 5.tail 6.命令模式 7.插入模式 8.图…

等保测评标准和规范有哪些?

等保测评标准和规范的出现,为我国信息安全等级保护制度的建立和健全提供了重要的保障。 作为信息安全领域的重要评估标准,等保测评旨在通过对信息系统、网络安全设备和安全产品等的安全性能、安全功能、安全管理、安全控制和安全审计等方面的要求进行检查…

【11】Redis学习笔记 (微软windows版本)【Redis】

注意:官redis方不支持windows版本 只支持linux 此笔记是依托微软开发windows版本学习 一、前言 Redis简介: Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它也被称为数据结构服务器。Redis以键值对&am…

代码随想录算法训练营第58天|动态规划part15|392.判断子序列、115.不同的子序列

代码随想录算法训练营第58天|动态规划part15|392.判断子序列、115.不同的子序列 392.判断子序列 392.判断子序列 思路: (这道题也可以用双指针的思路来实现,时间复杂度也是O(n)) 这道题应该算是编辑距…

OpenCV-Python中的图像处理-傅里叶变换

OpenCV-Python中的图像处理-傅里叶变换 傅里叶变换Numpy中的傅里叶变换Numpy中的傅里叶逆变换OpenCV中的傅里叶变换OpenCV中的傅里叶逆变换 DFT的性能优化不同滤波算子傅里叶变换对比 傅里叶变换 傅里叶变换经常被用来分析不同滤波器的频率特性。我们可以使用 2D 离散傅里叶变…

BGP+MPLS+VPN

实验要求及拓扑 一、实验思路 1.先中间R2-R4区域可通 2.在R2、R4上创建两个虚拟空间 3.将R2上的R2和R1、R6直连接口关联到对应虚拟空间、将R4上的R4和R5、R7直连接口关联到对应虚拟空间,然后再配置IP地址 4.R2和R4BGP建邻 5.R2和R4邻居间端建立一个VPNV4的关系&…

包管理工具 nvm npm nrm yarn cnpm npx pnpm详解

包管理工具 nvm npm yarn cnpm npx pnpm npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/122533843 npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/1…

SHELL 基础 SHELL注释 及 执行SHELL脚本的四种方法

SHELL 脚本编写规范 : 脚本开头 : # 脚本第一行 : #! /bin/bash 或 #!/bin/sh ( 脚本解释器 ) # 程序段开头需要加 版本版权信息 ,例如 : # Date 创建日期 # Author : 作者 # …

【微服务】一文了解 Nacos

一文了解 Nacos Nacos 在阿里巴巴起源于 2008 2008 2008 年五彩石项目(完成微服务拆分和业务中台建设),成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。 随着云计算兴起, 2018 2018 20…

基于视觉的仪表检测/指针仪表自动识别读数——论文解读

中文论文题目:基于关键点检测的指针仪表读数识别算法研究与应用 英文论文题目: Research and Application of PointerMeter Reading Recognition AlgorithmBased on Key Point Detection 部分摘要: 本文在总结概括了关键点检测和传统指针仪表…

驱蚊酯、避蚊胺、派卡瑞丁、柠檬桉醇驱蚊效果和剂量在不同作用环境下的测试于验证

摘要 随着全球气候的变化和人类活动的不断增加,蚊虫成为了一种广泛存在且对人类健康造成威胁的害虫。蚊虫不仅令人感到不适,还可能传播一系列严重的传染病,如疟疾、登革热和寨卡病毒等。为了应对这一问题,寻找高效且安全的驱蚊方…

Codeforces Round 893 (Div. 2) E1. Rollbacks (Easy Version)

Codeforces Round 893 (Div. 2) E1. Rollbacks (Easy Version)思路&#xff1a;单点更新离线莫队区间查询区间不同数字个数栈保留last_state 源代码&#xff1a; #include<cstdio> #include<cmath> #include<algorithm> #include <stack> using names…

2023年雷军演讲读后感

文章目录 概述坚持梦想&#xff0c;拆解目标多维学习&#xff0c;掌握方法突破认知&#xff0c;深度探索及时总结&#xff0c;调整方向总结 概述 2023年8月14日晚7点&#xff0c;雷军进行了他个人的第四次年度演讲&#xff0c;大家都看了吗&#xff1f; 本次演讲的主题是&quo…

SRCNN:Image Super-Resolution Using Deep Convolutional Networks

Some words&#xff1a; 这里是一些阅读文章的笔记&#xff0c;这篇文章是第一篇将深度学习应用于超分领域的文章&#xff0c;具有较为重要的意义。 link: https://arxiv.org/pdf/1501.00092.pdf &#xff08;一&#xff09;Abstract&#xff1a; 我们提出一个对于单图像超分…

智慧工地一体化云平台源码:监管端、工地端、危大工程、智慧大屏、物联网、塔机、吊钩、升降机

智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR&AR等技术相结合&#xff0c;为工程项目管理提供先进技术手段&#xff0c;构建工地现场智能监控和控制体系&#xff0c;弥补传统方法在监管中的缺陷&#xff0c;最终实现项目对人、机、料、法、环的全…

SDXL1.0大模型安装与使用

个人网站&#xff1a; 文章目录 前言一、模型下载使用&#xff08;简单体验&#xff09;二、模型下载使用&#xff08;繁琐版&#xff09;三、ComfyUI 前言 使用 Stable Diffusion XL&#xff0c;您可以使用较短的提示创建描述性图像&#xff0c;并在图像中生成文字。该模型在…

【5款登录验证校验】基于jquery实现的5款登录验证码组件(附完整源码)

文章目录 写在前面涉及知识点1、随机字母验证码1.1 效果1.2 实现源码 2、数字运算验证码2.1 效果2.2 实现源码 3、滑块验证码3.1 效果3.2 实现源码 4、图片补全验证码4.1 效果4.2 实现源码 5、顺序点选验证码5.1 效果5.2 实现源码 6、源码分享6.1 百度网盘6.2 123网盘6.3 邮箱留…

cs231n assignment3 q1Network Visualization

文章目录 嫌啰嗦直接看代码Q1 :Network Visualizationcompute_saliency_maps题面解析代码输出 make_fooling_image题面解析代码输出 class_visualization_update_step题面解析代码输出 结语 嫌啰嗦直接看代码 Q1 :Network Visualization compute_saliency_maps 题面 这部分的…

【校招VIP】java语言考点之ConcurrentHashMap1.7和1.8

考点介绍&#xff1a; ConcurrentHashMap是JAVA校招面试的热门考点&#xff0c;主要集中在1.7和1.8的底层结构和相关的性能提高。 理解这个考点要从map本身的并发问题出发&#xff0c;再到hashTable的低性能并发安全&#xff0c;引申到ConcurrentHashMap的分块处理。同时要理解…

2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm

2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm https://ac.nowcoder.com/acm/contest/57363/B 文章目录 2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm题意解题思路代码 题意 解题思路 欧拉定理 a b ≡ { a b % φ ( p ) g c d ( a , p ) 1 a b g c d ( a ,…