我正在使用 axios在我的 Express API 中,我想在将有效负载发送到另一个 API 之前对其进行转换。 axios 有一个叫做 transformRequest
的东西.这是我遇到问题的地方。
我的代码是这样的:
const instance = axios.create({
baseURL: 'api-url.com',
transformRequest: [
(data, headers) => {
const encryptedString = encryptPayload(JSON.stringify(data));
data = {
SecretStuff: encryptedString,
};
return data;
},
],
});
// firing off my request using the instance above:
const postData = {
id: 1,
name: 'James',
};
instance.post('/getStuff', postData)
最终,我想发布 api-url.com
JSON:{"SecretStuff": "some-base64-string"}
- 而不是 postData
上面显示的对象。
在文档中,它说:“数组中的最后一个函数必须返回一个字符串或 Buffer、ArrayBuffer、FormData 或 Stream 的实例”——但当然我在这里返回一个对象,数据。奇怪的是,在 axios 文档中它显示他们从 transformRequest
返回 data
,但在他们的情况下,这必须是正确的数据类型。
我如何实际使用 axios 转换有效负载?
最佳答案
axios.create({
transformRequest: [(data, headers) => {
// modify data here
return data;
}, ...axios.defaults.transformRequest]
});
必须附加the original axios.defaults.transformRequest
到这里的 transformRequest
选项..
关于javascript - axios transformRequest - 如何改变 JSON 负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48819885/