安装 Axios
在开始使用 Axios 之前,你需要先安装它。你可以通过 npm 或者 yarn 来安装 Axios。
npm install axios
或者
yarn add axios
安装完成后,你可以在你的项目中导入 Axios:
import axios from 'axios';
发送请求
Axios 提供了多种方法来发送 HTTP 请求,包括 GET、POST、PUT 和 DELETE 等。
GET 请求
GET 请求是最常用的请求类型之一。你可以使用 axios.get() 方法来发送 GET 请求:
-- -------------------- ---- -------
---------------------------
-------------- ---------- -
-- ------
----------------------
--
--------------- ------- -
-- ----
-------------------
---POST 请求
POST 请求用于向服务器发送数据。你可以使用 axios.post() 方法来发送 POST 请求:
-- -------------------- ---- -------
------------------- -
---------- -------
--------- ------------
--
-------------- ---------- -
----------------------
--
--------------- ------- -
-------------------
---PUT 请求
PUT 请求用于更新服务器上的资源。你可以使用 axios.put() 方法来发送 PUT 请求:
-- -------------------- ---- -------
------------------------ -
---------- -------
--------- ------------
--
-------------- ---------- -
----------------------
--
--------------- ------- -
-------------------
---DELETE 请求
DELETE 请求用于删除服务器上的资源。你可以使用 axios.delete() 方法来发送 DELETE 请求:
axios.delete('/user/12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});请求配置
除了基本的请求类型之外,Axios 还提供了丰富的配置选项来定制请求。
设置请求头
你可以通过 headers 属性来设置请求头:
axios.get('/user', {
headers: { 'X-Custom-Header': 'foobar' }
})
.then(function (response) {
console.log(response);
});设置超时时间
你可以通过 timeout 属性来设置请求的超时时间:
-- -------------------- ---- -------
------------------ -
-------- ----
--
-------------- ---------- -
----------------------
--
--------------- ------- -
-------------------
---设置基础 URL
你可以通过 baseURL 属性来设置请求的基础 URL,这样你在发送请求时就不需要每次都写完整的 URL:
-- -------------------- ---- -------
---------------------- - --------------------------
------------------------
-------------- ---------- -
----------------------
--
--------------- ------- -
-------------------
---响应处理
Axios 的响应对象包含几个属性,比如 data、status、statusText、headers 和 config。这些属性包含了请求和响应的详细信息。
获取响应数据
你可以通过 response.data 来获取服务器返回的数据:
axios.get('/user/12345')
.then(function (response) {
console.log(response.data);
});获取状态码
你可以通过 response.status 来获取 HTTP 状态码:
axios.get('/user/12345')
.then(function (response) {
console.log(response.status); // 输出状态码
});获取状态文本
你可以通过 response.statusText 来获取 HTTP 状态文本:
axios.get('/user/12345')
.then(function (response) {
console.log(response.statusText); // 输出状态文本
});获取响应头
你可以通过 response.headers 来获取响应头信息:
axios.get('/user/12345')
.then(function (response) {
console.log(response.headers['content-type']); // 输出内容类型
});获取请求配置
你可以通过 response.config 来获取发送请求时的配置信息:
axios.get('/user/12345')
.then(function (response) {
console.log(response.config.url); // 输出请求 URL
});错误处理
Axios 提供了统一的方式来处理错误。当请求失败时,Axios 会抛出一个错误对象,你可以通过 .catch() 方法来捕获这个错误并进行相应的处理。
捕获错误
你可以使用 .catch() 方法来捕获请求过程中发生的任何错误:
-- -------------------- ---- -------
------------------------
-------------- ---------- -
----------------------
--
--------------- ------- -
-- ---------------- -
-- ------------------ --- ---
---------------------------------
-----------------------------------
------------------------------------
- ---- -- --------------- -
-- ---------------
---------------------------
- ---- -
-- ---------
-------------------- ---------------
-
--------------------------
---自定义错误处理
你可以自定义错误处理逻辑,例如显示错误提示或记录日志:
-- -------------------- ---- -------
------------------------
-------------- ---------- -
----------------------
--
--------------- ------- -
-- ---------------- -
-- ------
---------------------
- ---- -- --------------- -
-----------------------
- ---- -
----------------------- ---------------
-
----------------------------
---拦截器
Axios 支持拦截器,可以在请求被发送到服务器之前或响应被处理之前修改它们。
添加请求拦截器
你可以使用 axios.interceptors.request.use() 方法来添加请求拦截器:
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});添加响应拦截器
你可以使用 axios.interceptors.response.use() 方法来添加响应拦截器:
axios.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});移除拦截器
如果你需要移除拦截器,可以使用 axios.interceptors.request.eject() 和 axios.interceptors.response.eject() 方法:
const myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);取消请求
Axios 支持取消请求的功能。你可以通过创建一个取消令牌来实现这一点。
创建取消令牌
你可以使用 axios.CancelToken.source() 方法来创建一个取消令牌:
-- -------------------- ---- -------
----- ----------- - ------------------
----- ------ - ---------------------
------------------------ -
------------ ------------
--
-------------- ---------- -
----------------------
--
--------------- -------- -
-- ------------------------ -
-------------------- ---------- ----------------
- ---- -
-- ----
-
---
-- ------------ -------
------------------------ -------- -- --- --------使用自定义取消函数
你也可以使用自定义的取消函数来取消请求:
-- -------------------- ---- -------
----- ----------- - ------------------
--- -------
------------------------ -
------------ --- -------------------- ----------- -
-- -----------------
------ - --
--
--
-------------- ---------- -
----------------------
---
-- ------------ -------
----------------- -------- -- --- --------以上就是 Axios API 的详细介绍。通过这些功能,你可以灵活地发送各种类型的 HTTP 请求,并且能够处理请求过程中的各种情况。希望这些内容对你有所帮助!