axios-miniprogram/docs/pages/basics/transform-data.md

122 lines
2.1 KiB
Markdown

---
title: 转换数据
---
# {{ $frontmatter.title }}
::: tip {{ $frontmatter.title }}
请求发送前转换请求数据,响应到达 `then` 之前转换响应数据。
:::
## 转换请求数据
可以转换请求数据,只对允许携带请求数据的请求方法生效,允许携带请求数据的方法有:`POST`、`PUT`、`PATCH`。
```ts
import axios from 'axios-miniprogram';
axios('test', {
method: 'POST',
transformRequest(data, headers) {
return JSON.stringify(data);
},
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
```
也支持多次转换。
```ts
import axios from 'axios-miniprogram';
axios('test', {
method: 'POST',
transformRequest: [
(data, headers) => {
return JSON.stringify(data);
},
(data, headers) => {
return encodeURIComponent(data);
},
],
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
```
## 全局转换请求数据
可以设置全局转换请求数据,对每个请求生效。
```ts
import axios from 'axios-miniprogram';
axios.defaults.transformRequest = (data, headers) => {
return JSON.stringify(data);
};
```
## 转换响应数据
可以转换响应数据。
```ts
import axios from 'axios-miniprogram';
axios('test', {
transformResponse(data, headers) {
return JSON.parse(data);
},
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
```
也支持多次转换。
```ts
import axios from 'axios-miniprogram';
axios('test', {
transformResponse: [
(data, headers) => {
return decodeURIComponent(data);
},
(data, headers) => {
return JSON.parse(data);
},
],
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
```
## 全局转换响应数据
可以设置全局转换响应数据,对每个请求生效。
```ts
import axios from 'axios-miniprogram';
axios.defaults.transformResponse = (data, headers) => {
return JSON.parse(data);
};
```