当前位置: 首页 > article >正文

让我们从了解axios开始到封装axios(ts+react开发情况下)

1. 一句话解释什么是 AxiosAxios 是一个前端用来“发网络请求”的工具用来前后端联系它的主要工作就是帮你把前端你的网页和后端服务器/数据库连接起来实现数据的传递。2. 打个比方Axios 就是一个“快递员”你的网页前端 你的家服务器后端 远方的仓库比如淘宝的仓库数据 快递包裹如果你想从仓库拿一个包裹获取商品信息或者往仓库发一个包裹提交注册信息你需要找人帮你跑腿。Axios 就是你雇佣的这个“快递员”。你只需要告诉他“去某某地址帮我拿个东西”他就会跑过去把东西拿回来交给你如果中途出了问题地址填错了、仓库关门了他也会回来向你报告错误。3 .最核心的方法GET 和 POST就像快递有“收件”和“寄件”一样Axios 最常用的有两个方法GET 请求收件向服务器要数据。比如获取今天的天气、获取文章列表。POST 请求寄件向服务器提交数据。比如提交登录账号和密码、发布一条朋友圈。假设我们现在要在网页里用 Axios最简单的方法是在 HTML 文件里引入它。第一步引入 Axios如果你以后用 Vue 或 React会用 npm install axios 下载它但现在我们直接用网页链接引入即可!-- 在HTML文件的head标签里加入这行代码就请来了快递员 -- script srchttps://cdn.jsdelivr.net/npm/axios/dist/axios.min.js/script第二步发一个 GET 请求获取数据我们将向一个免费的测试网站JSONPlaceholder请求一篇文章的数据。// 告诉 Axios去这个网址帮我拿数据GET axios.get(https://jsonplaceholder.typicode.com/posts/1) .then(function (response) { // .then 意思是如果成功拿到了就执行这里的代码 console.log(拿到的数据是, response.data); }) .catch(function (error) { // .catch 意思是如果中途出错了比如网址填错就执行这里的代码 console.log(哎呀出错了, error); });第三步发一个 POST 请求提交数据假设我们要向服务器注册一个新用户// 准备好要寄出去的数据包裹 let newUser { name: 小明, age: 18 }; // 告诉 Axios去这个网址把 newUser 这个包裹交过去POST axios.post(https://jsonplaceholder.typicode.com/posts, newUser) .then(function (response) { console.log(提交成功服务器返回的确认信息是, response.data); }) .catch(function (error) { console.log(提交失败, error); });4.Axios实例通过axios.create()方法可以创建一个axios的实例通过axios实例同样可以发送请求。想一下为什么需要axios实例?通常在一个业务系统内会存在很多的接口接口会存在一些通用的全局配置比如请求头中包含统一的鉴权信息接口入参里统一传递登录用户信息。如果在每个接口里都配置一遍会导致接口配置很冗余。而axios实例是可以完成通用配置的后续通过同一个实例发送的请求都会生效。常用全局配置请求配置优先级实例配置全局配置。·baseURL:基础的url前缀和url参数组成完整的请求url·timeout:超时时间·header:请求头例子一、先做全局配置 axios纯净版新建一个文件request.js只做 2 件事配置基础地址创建一个 axios 实例// 1. 引入 axios import axios from axios; // 2. 创建全局配置的 axios 实例 // 以后所有请求都用这个 instance const instance axios.create({ // 全局基础URL最重要 // 以后写接口只需要写 /personalized不用写一长串地址 baseURL: http://localhost:4000, // 请求超时时间可选 timeout: 5000 }); // 3. 导出给页面用 export default instance;二、配置完了怎么用 GET以前写法麻烦axios.get(http://localhost:4000/personalized)现在全局配置后简洁import request from ./request.js; request.get(/personalized).then((res) { console.log(数据, res.data); });为什么变短了因为baseURL 已经自动帮你加上了plaintextrequest.get(/personalized) axios.get(http://localhost:4000/personalized)三、配置完了怎么用 POST以前写法axios.post(http://localhost:4000/login, { username: zs, password: 123 })现在全局配置后一样简洁import request from ./request.js; request.post(/login, { username: zs, password: 123 }).then((res) { console.log(返回结果, res.data); });四、全局配置到底帮你做了什么只讲重点统一管理地址以后服务器地址变了只需要改request.js一处不用改所有接口。所有请求共享配置比如超时、请求头...代码更干净不用每次写一长串http://localhost:40005.什么是拦截器在真实开发中网页可能要发几十个、上百个网络请求。每次寄件你都要给包裹贴邮票添加身份验证/Token。每次收件你都要拆开厚厚的纸箱只拿里面的东西提取数据甚至还要看看包裹有没有破损处理报错。如果每次发请求你都手动写一遍这些代码岂不是累死拦截器Interceptor就是你雇佣的两个“门卫大爷”一个管出门请求拦截器一个管进门响应拦截器。你只需要给门卫交代一次规则以后快递员每次进出门卫都会自动帮你处理好。1. 请求拦截器Request Interceptor—— 管“出门”的门卫大爷作用时间在快递员Axios拿着包裹准备离开你的网页去服务器之前。比喻快递员走到大门口门卫大爷拦住他“等一下老板说了现在寄快递都要戴个工牌我给你挂上再走。”最常见的用途自动加上“通行证”Token你登录后服务器会给你一个 Token类似 VIP 卡。以后每次请求都要带上它。有了拦截器门卫大爷会自动往每个请求里塞入 Token你就不用每次都手动写了。显示“加载中”门卫大爷看到快递员出门了就在网页上转个圈圈提示用户“正在加载中...”。2. 响应拦截器Response Interceptor—— 管“进门”的门卫大爷作用时间在快递员从服务器拿回包裹交到你手里的代码.then 或 await之前。比喻快递员满头大汗跑回来门卫大爷拦住他“等一下老板很忙不想看那些包装盒。我帮你把外层纸箱拆了只把里面的商品拿给老板。如果包裹在路上丢了或者地址是错的我直接去告诉老板出错了。”最常见的用途剥离无用的外包装之前我们拿数据要写 response.data因为 response 是 Axios 包装的纸箱。通过拦截器我们可以直接把 data 取出来以后你拿到的直接就是想要的数据。全局处理错误如果服务器返回报错比如“登录已过期”门卫大爷直接弹出提示框“请重新登录”并且把网页跳回登录页。你就不需要在每个请求的 .catch() 里写一遍了。6.拦截器怎么写一、先记住拦截器写在全局 axios 实例下面也就是你刚才的request.js里。二、完整专业写法文件request.js// 1. 引入 axios import axios from axios // 2. 创建实例全局配置 const service axios.create({ baseURL: http://localhost:4000, timeout: 5000 }) // // ✅ 【专业写法】请求拦截器 // service.interceptors.request.use( (config) { // 请求发送之前做的事 console.log(请求准备发送) // 比如统一加 token const token localStorage.getItem(token) if (token) { config.headers.token token } return config // 必须返回 }, (error) { // 请求错误 return Promise.reject(error) } ) // // ✅ 【专业写法】响应拦截器 // service.interceptors.response.use( (response) { // 成功直接返回 data页面不用写 .data return response.data }, (error) { // 统一错误处理 console.error(请求出错, error) return Promise.reject(error) } ) export default service三、我一句一句给你讲清楚专业版解释1. 请求拦截器service.interceptors.request.use( (config) { // config 请求的全部信息 // 你可以在这里 // 加请求头、加参数、加 token、加签名 return config // 必须 return否则请求发不出去 }, (error) { return Promise.reject(error) } )作用统一添加 token统一设置请求头统一处理公共参数2. 响应拦截器service.interceptors.response.use( (response) { // 响应成功 return response.data // 直接返回数据 }, (error) { // 响应失败404、500、超时等 return Promise.reject(error) } )作用统一返回 data统一处理错误统一判断状态码四、加完拦截器后你的 GET / POST 变成这样超级干净import request from ./request // GET request.get(/personalized).then(data { console.log(data) // 直接拿到数据不用写 res.data }) // POST request.post(/login, { username: zs, password: 123 }).then(data { console.log(data) })7、什么是请求头和token一、先看我们的代码就看这一段// 请求拦截器 service.interceptors.request.use(config { // 这里就是往 请求头 里放 token const token localStorage.getItem(token) if (token) { config.headers.token token } return config })我现在逐字逐句给你讲二、什么是 请求头 headers请求头 发给后端的【附加信息】你发请求时有两部分内容正文数据账号密码、表单内容附加信息我是谁、我登录了没、我发的是什么格式附加信息 就放在 请求头里在代码里config.headersheaders 请求头它是一个对象用来放token内容类型客户端信息三、什么是 token登录身份证token 你登录后的【身份证 / 通行证】流程你登录 → 后端给你一个字符串这个字符串就是token以后你访问需要登录的接口必须带上它四、代码里这句到底在干嘛config.headers.token token翻译成人话往请求头里放上我的登录身份证

相关文章:

让我们从了解axios开始到封装axios(ts+react开发情况下)

1. 一句话解释什么是 AxiosAxios 是一个前端用来“发网络请求”的工具,用来前后端联系 它的主要工作,就是帮你把前端(你的网页)和后端(服务器/数据库)连接起来,实现数据的传递。2. 打个比方&…...

Realistic Vision V5.1 虚拟摄影棚:Visual Studio开发环境配置与调试技巧

Realistic Vision V5.1 虚拟摄影棚:Visual Studio开发环境配置与调试技巧 你是不是也遇到过这种情况:在网上看到别人用Realistic Vision V5.1生成的人像照片,光影、皮肤质感都跟真的一样,心里痒痒的也想自己试试。但一打开Visual…...

AIVideo算法解析:从文本到视频的Transformer架构

AIVideo算法解析:从文本到视频的Transformer架构 1. 引言:当文字开始"动起来" 你有没有想过,为什么现在AI能够把一段简单的文字描述变成流畅的视频?比如输入"一只小猫在草地上追逐蝴蝶",就能生成…...

实时口罩检测-通用模型案例分享:快速检测图片中多人口罩佩戴情况

实时口罩检测-通用模型案例分享:快速检测图片中多人口罩佩戴情况 1. 模型概述与应用价值 1.1 什么是实时口罩检测模型 实时口罩检测-通用模型是一款基于DAMO-YOLO框架开发的高效目标检测工具,专门用于识别图片或视频中人物是否佩戴口罩。该模型能够同…...

Qwen-Image定制镜像部署教程:系统盘精简设计提升启动速度与IO稳定性

Qwen-Image定制镜像部署教程:系统盘精简设计提升启动速度与IO稳定性 1. 镜像概述与核心优势 Qwen-Image定制镜像是专为RTX 4090D GPU环境优化的大模型推理解决方案。基于官方Qwen-Image基础镜像深度定制,预装了完整的CUDA 12.4工具链和Qwen-VL视觉语言…...

中国光伏电站矢量面数据集(2010–2022)|含安装年份+土地类型|SHP格式|河海大学 中科院联合发布

🔍 数据简介 本数据集由河海大学地理与遥感学院陈跃红副教授团队联合中科院地理资源所研制,基于 Sentinel-2 与 Landsat 时序影像,结合 TransUNet 语义分割模型 与 CCDC 变化检测算法,首次实现对中国大陆 2010–2022 年光伏电站 的…...

读了OpenCV均衡化源码,发现一个clipLimit参数背后藏着4层算法设计——从全局CDF到分块插值的对比度增强全链路

一、一行equalizeHist,背后藏了多少东西 对比度增强是图像预处理中最高频的操作之一。拿到一张灰暗的图,调一下对比度让细节显现出来,几乎所有图像分析流水线都要走这一步。 OpenCV提供了两种对比度增强方案:全局直方图均衡化 equalizeHist 和对比度受限自适应直方图均衡…...

Qwen3-ForcedAligner-0.6B在语音转写中的惊艳效果展示

Qwen3-ForcedAligner-0.6B在语音转写中的惊艳效果展示 1. 语音转写的新突破 语音转写技术最近有了一个很有意思的进展,特别是时间戳对齐这个环节。传统方法在处理多语言或者混合语音时,经常会出现时间戳不准、对齐困难的问题,导致转写结果和…...

冬季电脑使用全指南:防静电与低温防护技巧

入冬以来,中国多地遭受寒潮侵袭,北方气温持续走低,甚至“四川小三亚”之称的攀枝花也迎来了雪花纷飞。尽管天气变得寒冷,但我这样的“社畜”却对冬天情有独钟,因为窝在被窝里刷剧、办公、追动漫简直是一种享受。作为一…...

精益生产的核心是什么?以客户价值为导向的浪费消除逻辑

在当前多品种、小批量、短交期的市场环境下,越来越多的制造企业开始推行精益生产,但真正落地见效的并不多。很多企业把精益等同于减人、降本、5S、看板、TPM等工具,认为只要引入几项方法,就是实现了精益。结果往往是:现…...

用Raspberry Pi Pico和2.2寸屏DIY你的童年红白机:手把手搭建NES模拟器(附完整配件清单)

用Raspberry Pi Pico和2.2寸屏DIY你的童年红白机:手把手搭建NES模拟器(附完整配件清单) 还记得小时候围在电视机前玩《超级马里奥》的快乐吗?现在,你可以用一块比信用卡还小的开发板,亲手复刻这份童年记忆。…...

Nanbeige 4.1-3B多场景:用作编程学习伴侣——错误诊断+代码解释+像素化反馈

Nanbeige 4.1-3B多场景:用作编程学习伴侣——错误诊断代码解释像素化反馈 1. 引言:当编程学习遇上像素冒险 想象一下,你正在学习编程,遇到一个难以理解的错误。传统的编程学习工具往往冰冷而机械,而Nanbeige 4.1-3B带…...

告别PS!Qwen-Image-Edit-2509小白入门:文字描述就能精准编辑图片

告别PS!Qwen-Image-Edit-2509小白入门:文字描述就能精准编辑图片 1. 为什么你需要这个AI修图神器 想象一下这样的场景:你刚拿到一批产品照片,老板要求"把背景换成纯白色、给所有商品加上价格标签、把老款手机换成最新型号&…...

RT-Thread中uORB模块的轻量级实现与优化策略

1. uORB模块的核心价值与RT-Thread适配挑战 uORB(Micro Object Request Broker)最初诞生于PX4飞控系统,它的设计初衷是解决嵌入式系统中多模块间高效通信的问题。想象一下,在一个无人机飞控系统中,传感器数据、控制指令…...

松下PLC编程 FP - XH 10轴定位项目实战分享

松下PLC编程 FP-XH 10轴定位 松下PLC项目实例,两台CPU间通过RS485通讯,10轴定位控制。 轴控制程序采用FB,直观可靠,可以重复使用,使用时只需要对fb接口赋值即可,内部已经对系统寄存器做好了处理。 拥有此fb…...

快速部署雪女-斗罗大陆-造相Z-Turbo:基于Xinference,用Gradio打造简易绘画工具

快速部署雪女-斗罗大陆-造相Z-Turbo:基于Xinference,用Gradio打造简易绘画工具 最近在尝试搭建一个专用于生成《斗罗大陆》风格角色立绘的AI绘画工具,经过多次测试,发现"雪女-斗罗大陆-造相Z-Turbo"这个模型效果非常惊…...

西门子V20变频器与200Smart通讯实战

西门子V20变频器和200Smart通讯程序。硬件配置有:西门子ST2O一台,威伦触摸屏TK607OiQ一台,V2O变频器一台,三相220∨小电机一个。程序功能介绍:使用MODBUS通讯控制变频器正转,反转,停止。 通讯设…...

手把手教你用ZLMediaKit搭建WebRTC直播测试环境(含摄像头推流实战)

手把手教你用ZLMediaKit搭建WebRTC直播测试环境(含摄像头推流实战) 在流媒体开发领域,WebRTC已经成为实时音视频通信的事实标准。本文将带你从零开始,搭建一个完整的WebRTC测试环境,使用ZLMediaKit作为流媒体服务器&a…...

手把手教你用Z-Image-Turbo:无需下载模型,镜像内置权重开箱即用

手把手教你用Z-Image-Turbo:无需下载模型,镜像内置权重开箱即用 想体验一下目前最火的开源AI绘画模型,但被繁琐的环境配置和动辄几十GB的模型下载劝退?今天我要分享的Z-Image-Turbo镜像,可能是你最快上手高质量AI绘画…...

DBO-RBF多输出回归预测算法(23年新算法):基于蜣螂算法优化径向基记忆神经网络的多输入多...

DBO-RBF多输出【23年新算法】基于蜣螂算法(DBO)优化径向基记忆神经网络(RBF)的多输出回归预测(多输入多输出)程序已经调试好,无需更改代码替换数据集即可运行数据格式为excel 1、运行环境要求MATLAB版本为2018b及其以上 2、评价指标包括:R2、MAE、MBE、RMSE等&#…...

ncmdump终极指南:轻松解密网易云音乐NCM格式,实现跨平台音乐自由

ncmdump终极指南:轻松解密网易云音乐NCM格式,实现跨平台音乐自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器使用而烦恼吗?ncmdump是一款专…...

五种新鲜与腐烂果蔬识别分割数据集labelme格式1131张5类别

注意数据集中有部分增强图片数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数):1131标注数量(json文件个数):1131标注类别数:10标注类别名称:["fresh_apple",&…...

免费降AI都是智商税?2026届实测真相:查重率70%降到10%的避坑指南!

眼瞅着毕业答辩的日子一天天逼近,大家手里的论文查重报告是不是还红得刺眼? 说实话,这届毕业生真的太难了。以前的学长学姐只用担心查重率,现在倒好,不仅要查重,还得面对那个神出鬼没的AIGC检测。 刚开始看…...

论文全红怎么救?2026最新降重王炸组合:DeepSeek四大免费降AI指令与3款工具深度测评(90%→10%)

知网AIGC检测又升级了,现在除了查重复率,AIGC检测更是必须要过的硬指标。 我之前的一篇内容AI率测出59.2%,后来我花了一周时间研究,发现想降低ai,不能只是简单的替换词汇,必须要改变文本的生成逻辑&#x…...

基于Dify平台的LiteAvatar应用快速开发

基于Dify平台的LiteAvatar应用快速开发 1. 引言 你是不是曾经想过开发一个能说会动的数字人应用,但又担心技术门槛太高?现在有了Dify平台和LiteAvatar技术,这一切变得简单多了。Dify作为一个强大的AI应用开发平台,让开发者可以像…...

卡方检验实战指南:从理论到Python实现

1. 卡方检验:数据科学家的瑞士军刀 第一次接触卡方检验是在分析用户购买行为时。当时市场部同事信誓旦旦地说"女性用户更爱买护肤品",但当我们用卡方检验验证这个假设时,结果却让人大跌眼镜——性别和护肤品购买行为竟然没有显著关…...

Qwen-Image镜像部署案例:基于RTX4090D的通义千问视觉模型高效推理实操

Qwen-Image镜像部署案例:基于RTX4090D的通义千问视觉模型高效推理实操 1. 环境准备与快速部署 在开始使用Qwen-Image定制镜像前,我们需要确保硬件环境符合要求。这个镜像专为RTX 4090D显卡优化,配备了24GB显存和CUDA 12.4支持,能…...

告别‘夜盲症’:手把手教你用MFNet和RGB-Thermal数据集提升自动驾驶夜间感知(附代码实战)

突破夜间感知瓶颈:基于MFNet与多光谱数据的自动驾驶语义分割实战指南 凌晨3点的城市街道,一辆自动驾驶测试车缓缓停在十字路口中央——不是因为红灯,而是系统将路面积水错误识别为连续车道线。这是2022年某自动驾驶公司公开的典型夜间感知失效…...

fft npainting lama图像修复系统:保姆级部署与使用教学

fft npainting lama图像修复系统:保姆级部署与使用教学 1. 引言:为什么你需要这个图像修复神器? 想象一下这个场景:你找到一张完美的风景图,准备用作公众号封面,但右下角有个大大的水印;或者你…...

Qwen3-TTS-1.7B-CustomVoice部署案例:嵌入式设备端语音合成轻量化适配

Qwen3-TTS-1.7B-CustomVoice部署案例:嵌入式设备端语音合成轻量化适配 1. 项目背景与价值 在智能硬件和物联网设备快速发展的今天,语音合成技术已经成为人机交互的重要桥梁。然而,传统的语音合成方案往往面临着一个难题:要么效果…...