2023-03-25 16:22:01 +08:00
|
|
|
|
---
|
2023-04-15 16:21:54 +08:00
|
|
|
|
title: 开始
|
2023-03-25 16:22:01 +08:00
|
|
|
|
---
|
|
|
|
|
|
2023-04-15 16:21:54 +08:00
|
|
|
|
# {{ $frontmatter.title }}
|
2023-03-25 16:22:01 +08:00
|
|
|
|
|
|
|
|
|
## 安装
|
|
|
|
|
|
|
|
|
|
:::: code-group
|
|
|
|
|
|
2023-04-14 23:15:49 +08:00
|
|
|
|
```bash [NPM]
|
|
|
|
|
$ npm install -D axios-miniprogram
|
2023-03-25 16:22:01 +08:00
|
|
|
|
```
|
|
|
|
|
|
2023-04-14 23:15:49 +08:00
|
|
|
|
```bash [YARN]
|
|
|
|
|
$ yarn add -D axios-miniprogram
|
2023-03-25 16:22:01 +08:00
|
|
|
|
```
|
|
|
|
|
|
2023-04-14 23:15:49 +08:00
|
|
|
|
```bash [PNPM]
|
|
|
|
|
$ pnpm install -D axios-miniprogram
|
2023-03-25 16:22:01 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
::::
|
|
|
|
|
|
2023-04-18 11:23:27 +08:00
|
|
|
|
原生小程序也可以直接[下载源码包](https://github.com/zjx0905/axios-miniprogram/releases),但是这样是失去类型提示和 `sourceMap` 定位功能。
|
|
|
|
|
|
2023-04-18 19:50:40 +08:00
|
|
|
|
建议在条件允许的情况下优先使用包管理工具安装的方式,而不是使用下载源码包的方式。
|
2023-03-25 16:22:01 +08:00
|
|
|
|
|
2023-04-15 12:20:09 +08:00
|
|
|
|
## 引用
|
2023-03-25 16:22:01 +08:00
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
可以在不同的模块系统导入需要用到的功能。
|
|
|
|
|
|
2023-04-15 12:20:09 +08:00
|
|
|
|
:::: code-group
|
|
|
|
|
|
|
|
|
|
```ts [ES Module]
|
2023-04-19 21:36:06 +08:00
|
|
|
|
import axios, {
|
|
|
|
|
// 取消令牌
|
|
|
|
|
CancelToken,
|
2023-04-15 12:20:09 +08:00
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
// 判断取消请求错误
|
|
|
|
|
isCancel,
|
2023-04-15 12:20:09 +08:00
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
// 原始 Axios 类
|
|
|
|
|
Axios,
|
2023-04-15 12:20:09 +08:00
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
// 判断请求响应错误
|
|
|
|
|
isAxiosError,
|
2023-04-18 19:50:40 +08:00
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
// 创建平台适配器
|
|
|
|
|
createAdapter,
|
|
|
|
|
} from 'axios-miniprogram';
|
2023-04-18 19:50:40 +08:00
|
|
|
|
|
2023-05-04 10:39:52 +08:00
|
|
|
|
axios('/test');
|
2023-04-19 21:36:06 +08:00
|
|
|
|
```
|
2023-04-18 19:50:40 +08:00
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
```ts [CommonJS]
|
2023-04-18 19:50:40 +08:00
|
|
|
|
const {
|
2023-04-19 21:36:06 +08:00
|
|
|
|
// 静态对象
|
|
|
|
|
// 注意:默认导出的 axios 在 CommonJS 里是以 default 属性的方式存在
|
|
|
|
|
default: axios,
|
|
|
|
|
|
2023-04-18 19:50:40 +08:00
|
|
|
|
// 取消令牌
|
|
|
|
|
CancelToken,
|
|
|
|
|
|
|
|
|
|
// 判断取消请求错误
|
|
|
|
|
isCancel,
|
|
|
|
|
|
|
|
|
|
// 原始 Axios 类
|
|
|
|
|
Axios,
|
|
|
|
|
|
|
|
|
|
// 判断请求响应错误
|
|
|
|
|
isAxiosError,
|
|
|
|
|
|
|
|
|
|
// 创建平台适配器
|
|
|
|
|
createAdapter,
|
2023-04-19 21:36:06 +08:00
|
|
|
|
} = require('axios-miniprogram');
|
2023-04-18 19:50:40 +08:00
|
|
|
|
|
2023-05-04 10:39:52 +08:00
|
|
|
|
axios('/test');
|
2023-04-18 19:50:40 +08:00
|
|
|
|
```
|
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
::::
|
|
|
|
|
|
2023-04-20 21:49:26 +08:00
|
|
|
|
不同的模块系统存在一些小差异,`esm` 会自动处理默认导入,但 `cjs` 不会处理默认导入。
|
|
|
|
|
|
|
|
|
|
```ts
|
|
|
|
|
// 默认导入,esm 和 cjs 这两种写法是等价关系
|
|
|
|
|
import axios from 'axios-miniprogram';
|
|
|
|
|
const axios = require('axios-miniprogram').default;
|
|
|
|
|
|
|
|
|
|
// 别名导入,esm 和 cjs 这两种写法是等价关系
|
|
|
|
|
import * as axios from 'axios-miniprogram';
|
|
|
|
|
const axios = require('axios-miniprogram');
|
|
|
|
|
|
|
|
|
|
// 具名导入,esm 和 cjs 这两种写法是等价关系
|
|
|
|
|
import {
|
|
|
|
|
default as axios,
|
|
|
|
|
CancelToken,
|
|
|
|
|
isCancel,
|
|
|
|
|
Axios,
|
|
|
|
|
isAxiosError,
|
|
|
|
|
createAdapter,
|
|
|
|
|
} from 'axios-miniprogram';
|
|
|
|
|
const {
|
|
|
|
|
default: axios,
|
|
|
|
|
CancelToken,
|
|
|
|
|
isCancel,
|
|
|
|
|
Axios,
|
|
|
|
|
isAxiosError,
|
|
|
|
|
createAdapter,
|
|
|
|
|
} = require('axios-miniprogram');
|
|
|
|
|
```
|
|
|
|
|
|
2023-04-19 21:36:06 +08:00
|
|
|
|
## 使用
|
|
|
|
|
|
2023-04-15 12:20:09 +08:00
|
|
|
|
### `axios(url, config?)`
|
|
|
|
|
|
|
|
|
|
可以通过把 `url` 和 `config` 传递给 `axios` 来发送请求。
|
|
|
|
|
|
|
|
|
|
注意: `config` 为选填
|
2023-03-25 16:22:01 +08:00
|
|
|
|
|
2023-04-13 14:16:11 +08:00
|
|
|
|
```ts
|
2023-04-15 12:20:09 +08:00
|
|
|
|
import axios from 'axios-miniprogram';
|
|
|
|
|
|
|
|
|
|
// 默认发送 GET 请求
|
|
|
|
|
axios('https://api.com/test')
|
2023-03-25 16:22:01 +08:00
|
|
|
|
.then((response) => {
|
|
|
|
|
// 请求成功后做些什么
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
// 请求失败后做些什么
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 发送 POST 请求
|
2023-04-15 12:20:09 +08:00
|
|
|
|
axios('https://api.com/test', {
|
|
|
|
|
method: 'POST',
|
2023-03-25 16:22:01 +08:00
|
|
|
|
})
|
|
|
|
|
.then((response) => {
|
|
|
|
|
// 请求成功后做些什么
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
// 请求失败后做些什么
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
2023-04-15 12:20:09 +08:00
|
|
|
|
### `axios(config)`
|
2023-03-25 16:22:01 +08:00
|
|
|
|
|
2023-04-15 12:20:09 +08:00
|
|
|
|
也可以直接把 `config` 传递给 `axios` 来发送请求。
|
2023-03-25 16:22:01 +08:00
|
|
|
|
|
2023-04-13 14:16:11 +08:00
|
|
|
|
```ts
|
2023-04-15 12:20:09 +08:00
|
|
|
|
import axios from 'axios-miniprogram';
|
|
|
|
|
|
2023-03-25 16:22:01 +08:00
|
|
|
|
// 默认发送 GET 请求
|
2023-04-15 12:20:09 +08:00
|
|
|
|
axios({
|
|
|
|
|
url: 'https://api.com/test',
|
|
|
|
|
})
|
2023-03-25 16:22:01 +08:00
|
|
|
|
.then((response) => {
|
|
|
|
|
// 请求成功后做些什么
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
// 请求失败后做些什么
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 发送 POST 请求
|
2023-04-15 12:20:09 +08:00
|
|
|
|
axios({
|
|
|
|
|
url: 'https://api.com/test',
|
|
|
|
|
method: 'POST',
|
2023-03-25 16:22:01 +08:00
|
|
|
|
})
|
|
|
|
|
.then((response) => {
|
|
|
|
|
// 请求成功后做些什么
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
// 请求失败后做些什么
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
2023-04-15 16:21:54 +08:00
|
|
|
|
也可以使用请求方法简化请求。
|
|
|
|
|
|
|
|
|
|
- [axios.request(url, config?) | axios.request(config)](/basics/request)
|
2023-04-16 00:01:40 +08:00
|
|
|
|
- [axios.options(url, config?)](/method/OPTIONS)
|
|
|
|
|
- [axios.get(url, params?, config?)](/method/GET)
|
|
|
|
|
- [axios.head(url, params?, config?)](/method/HEAD)
|
|
|
|
|
- [axios.post(url, data?, config?)](/method/POST)
|
|
|
|
|
- [axios.put(url, data?, config?)](/method/PUT)
|
|
|
|
|
- [axios.patch(url, data?, config?)](/method/PATCH)
|
|
|
|
|
- [axios.delete(url, params?, config?)](/method/DELETE)
|
|
|
|
|
- [axios.trace(url, config?)](/method/TRACE)
|
|
|
|
|
- [axios.connect(url, config?)](/method/CONNECT)
|