Chapter 06 axios使用指南

欢迎大家订阅【Vue2+Vue3】入门到实践专栏,开启你的 Vue 学习之旅!

文章目录


前言

在现代前端开发中,与后端API进行数据交互是至关重要的。Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。本文详细介绍了Axios的基本用法。

一、导入

导入官网提供的 axios 在线地址:

html 复制代码
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

二、发送GET请求

axios.get(url[, config]) 方法用于向指定的URL发送HTTP GET请求,以从服务器获取数据。若请求成功,将执行.then中的回调函数,并可以访问服务器返回的数据;如果请求失败,则执行.catch中的回调函数,并输出错误信息。

axios.get(url[, config]) 方法中的 url 指请求的资源的完整 URL,其中包括 API 的基本地址。
API:一种允许不同软件应用程序之间进行交互和通信的接口。它定义了请求和响应的格式,以及如何访问某些功能或数据。

API 的基本地址:通常被称为"基础 URL"或 "端点", 用于访问某一 API 服务的主地址。这个地址通常包含协议(如 http 或 https)、域名、以及可选的路径。它指向一个服务器上的特定资源或服务。

复制代码
http://或https://{域名}/{资源路径}

API 服务 :通常是一个后端服务,运行在服务器上,处理来自客户端(如 web 应用、移动应用等)的请求,并返回相应的结果。它们可以提供数据访问、服务发现、功能调用、异步处理等多种功能。

使用axios.get(url[, config])方法时,查询参数可以直接嵌入在URL中,也可以通过在config对象中使用params配置来传递。

①直接在URL中传递查询参数

javascript 复制代码
axios.get('https://api.example.com/data?key=value&key2=values')  
  .then(function(response) {  
    console.log('响应数据:', response.data);  
  })  
  .catch(function(err) {  
    console.error('发生错误:', err);  
  });  
  • https://api.example.com/data?key=value&key2=values:请求的URL

    • https://api.example.com/data:API的基本地址,表示要访问的资源
    • ?key=value&key2=values :查询参数,它们通过?符号开始,多个参数间用&分隔
      • key=value :第一个查询参数,key是参数名称,value是参数值
      • key2=values :第二个查询参数,key2是参数名称,values是参数值
  • .then(function(response) {...})

    • then(...):一个Promise方法,表示成功获取响应后要执行的代码
    • function(response) {...} :一个回调函数,当请求成功时会被调用。
      • response:服务器返回的数据,它是一个对象,包含多个信息
  • console.log('响应数据:', response.data);:在控制台输出响应的数据

  • .catch(function(err) {...})

    • catch(...):一个Promise方法,用于捕捉请求过程中发生的错误
    • function(err) {...} : 这个回调函数,当请求失败时会被调用
      • err:错误对象,包含了关于错误的信息。
  • console.error('发生错误:', err);:在控制台输出错误信息

②通过params传递查询参数

javascript 复制代码
axios.get('https://api.example.com/data', {  
  params: {  
    key: 'value',  
    key2: 'values'  
  }  
})  
.then(function(response) {  
  console.log('响应数据:', response.data);  
})  
.catch(function(err) {  
  console.error('发生错误:', err);  
});  
  • params:配置对象中的一个属性,用于传递查询参数。Axios会自动将它们转换为URL的查询字符串格式:

    https://api.example.com/datakey=value&key2=values

  • key: 'value' : 一个查询参数,key是参数名称,value是参数值。

三、发送POST请求

使用axios.post(url, data, config)方法方法用于发送 HTTP POST 请求,向服务器提交数据。

javascript 复制代码
axios.post('https://api.example.com/data', {  
  key: 'value',  
  key2: 'value2'  
})  
.then(function(response) {  
  console.log('创建成功:', response.data);  
})  
.catch(function(err) {  
  console.error('发生错误:', err);  
});  
  • https://api.example.com/data :目标 URL,用于提交数据
    • https://api.example.com :服务器的地址
    • /data:要访问的特定资源
  • { key: 'value', key2: 'value2' } :发送到服务器的数据,通常是一个对象
    • key: 数据的属性名,表示要发送的数据的字段
    • 'value' : key 对应的值

四、处理响应

javascript 复制代码
axios.get('https://api.example.com/users')  
  .then(response => {  
    // 处理成功响应  
    console.log('用户数据:', response.data);  
  })  
  .catch(error => {  
    // 处理错误  
    if (error.response) {  
      // 请求已发出,且服务器回复了状态码  
      console.error('错误状态码:', error.response.status);  
      console.error('错误信息:', error.response.data);  
    } else if (error.request) {  
      // 请求已发出但没有收到响应  
      console.error('没有收到响应:', error.request);  
    } else {  
      // 其他错误  
      console.error('发生错误:', error.message);  
    }  
  });  
  • .then(response => {...})
    • then(...):一个 Promise 方法,用于处理请求成功的情况
    • response => {...}:一个箭头函数,在请求成功时执行
    • response :服务器返回的响应对象,通常包含多个属性:
      • data:服务器返回的实际数据(例如用户信息)
      • status:HTTP 响应状态码(如 200 表示请求成功)
      • statusText:HTTP 状态文本(如 "OK")
      • headers:响应头部,包含许多关于响应的信息
      • config:请求时的配置对象,包含请求的相关设置
      • request:实际的请求对象
相关推荐
Autumn_ing3 小时前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
keyipatience3 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
朱涛的自习室4 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
java1234_小锋6 小时前
【技术专题】HTML5 网页技术 - HTML5简介 & HTML5 文档结构
前端·html·html5
鶴哥只手遮天6 小时前
Vue 3 核心源码深度剖析系列(v3.5.44)-第 1 章 项目全景:monorepo 架构与工程化体系
前端·vue.js·开源
流星。。方6 小时前
小团队官网SEO落地:前端语义化与静态生成的工程实践
前端·状态模式
用户530429765797 小时前
盘点危化品搬运诊断的6类工具与自处理边界判断
前端
curtain7 小时前
从古法编程到 Agent:我入行这两年,AI 改变了什么
前端·openai
zyfts7 小时前
10分钟自制Codex钉钉通知Skill:AI干完活自动钉钉提醒你
前端
大孜然7 小时前
孜然QQ频道自动化程序机器人配置教程
前端