116 lines
2.1 KiB
Markdown
116 lines
2.1 KiB
Markdown
---
|
|
title: 请求拦截器
|
|
---
|
|
|
|
# {{ $frontmatter.title }}
|
|
|
|
::: tip {{ $frontmatter.title }}
|
|
用于请求发出前拦截请求。
|
|
|
|
通常会用于转换请求配置,或实现一些自定义功能。
|
|
:::
|
|
|
|
## 添加请求拦截器
|
|
|
|
可以添加请求拦截器。
|
|
|
|
```ts
|
|
import axios from 'axios-miniprogram';
|
|
|
|
axios.interceptors.request.use(
|
|
function (config) {
|
|
// 在发送请求之前做些什么
|
|
return config;
|
|
},
|
|
function (error) {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
```
|
|
|
|
也可以添加多个请求拦截器,后添加的会先执行。
|
|
|
|
```ts
|
|
import axios from 'axios-miniprogram';
|
|
|
|
// 先添加 后执行
|
|
axios.interceptors.request.use(
|
|
function (config) {
|
|
// 在发送请求之前做些什么
|
|
return config;
|
|
},
|
|
function (error) {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
|
|
// 后添加 先执行
|
|
axios.interceptors.request.use(
|
|
function (config) {
|
|
// 在发送请求之前做些什么
|
|
return config;
|
|
},
|
|
function (error) {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
```
|
|
|
|
## 移除请求拦截器
|
|
|
|
可以移除不再需要的请求拦截器。
|
|
|
|
```ts
|
|
import axios from 'axios-miniprogram';
|
|
|
|
const ejectId = axios.interceptors.request.use(
|
|
function (config) {
|
|
// 在发送请求之前做些什么
|
|
return config;
|
|
},
|
|
function (error) {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
|
|
// 移除请求拦截器
|
|
axios.interceptors.request.eject(ejectId);
|
|
```
|
|
|
|
## 移除所有请求拦截器
|
|
|
|
可以移除所有请求拦截器。
|
|
|
|
```ts
|
|
import axios from 'axios-miniprogram';
|
|
|
|
axios.interceptors.request.use(
|
|
function (config) {
|
|
// 在发送请求之前做些什么
|
|
return config;
|
|
},
|
|
function (error) {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
|
|
axios.interceptors.request.use(
|
|
function (config) {
|
|
// 在发送请求之前做些什么
|
|
return config;
|
|
},
|
|
function (error) {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
|
|
// 移除所有请求拦截器
|
|
axios.interceptors.request.clear();
|
|
```
|