Axios学习笔记
前言
在Java开发实训项目中,使用到了Axios来发送请求,所以学习了Axios的使用。
教程参考:Axios教程
Axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
promise是什么?(简要理解,详细理解放到后面)
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。
安装
npm install axios |
使用
这里还是以项目中的实际使用为例。
首先看一个完整的HTTP请求示例:
POST /login HTTP/1.1 // 请求行 |
在项目中,需要发送请求到后端,所以需要配置一个axios实例,这样可以统一配置请求头等信息。请求配置参考
import axios from 'axios' |
参数传递位置
Query参数:在URL中传递参数,如/project?userId=1
,后端使用@RequestParam
接收
- 位置:参数作为查询字符串附加在 URL 之后,例如:/project?userId=12345。
- 用途:通常用于 GET 请求,适合传递简单的键值对参数。
路径参数:在URL中传递参数,如/project/1
, 后端使用@PathVariable
接收
- 位置:参数作为 URL 路径的一部分,例如:/project/12345。
- 用途:通常用于 RESTful API 中的资源标识,适合传递资源 ID 等信息
请求体参数:在请求体中传递参数,如{userId: 1}
, 后端使用@RequestBody
接收
- 位置:参数作为请求体的一部分,例如:{userId: 12345}。
示例:
// 使用 Query 参数 |
拦截器
拦截器可以在请求或响应被 then 或 catch 处理前拦截它们。
在项目中使用到了请求拦截器,每次请求时自动将 token 添加到请求头中。
instance.interceptors.request.use( |
响应拦截器:
// 添加响应拦截器 |
响应结构
Axios返回的是一个Promise对象,所以可以使用then
和catch
方法处理响应。
一个响应结构应该包含如下信息:
{ |
使用.then()
方法处理响应:
axios.get('/user/12345') |
在项目中没有使用统一的错误处理机制,所以错误处理参考:错误处理