gpt4 book ai didi

javascript - axios报错转换后的数据必须是字符串、ArrayBuffer、Buffer或Stream

转载 作者:行者123 更新时间:2023-12-03 12:18:54 26 4
gpt4 key购买 nike

尝试使用 axios 执行 POST 请求时出现此错误:
Error: Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream at createError
这是我的要求:

async function fetchAndHandleErrors() {
const url = `/claim/${claimId}`;
const headers = {
Accept: 'application/json',
Authorization: `Bearer ${token}`,
};

const body = new FormData();
body.append('damage_description', damageDescription);
body.append('damaged_phone', {
uri: imageUri,
type: 'image/jpeg', // or photo.type
name: imageUri,
});

const result = await axios({
'post',
url: `${baseUrl}${url}`,
data: body,
headers,
});
return result.data;
}


我尝试删除 result.data仍然得到同样的错误。这是为什么?

最佳答案

如果您最终仍然需要解决此问题,我设法通过使用 formData.pipe() 来消除此错误。方法。对于您的情况,它可能如下所示:

import axios from 'axios'
import concat from 'concat-stream'
import fs from 'fs'
import FormData from 'form-data'

async function fetchAndHandleErrors() {
const file = fs.createReadStream(imageUri)

let body = new FormData();
body.append('damage_description', damageDescription);
body.append('damaged_phone', file);

body.pipe(concat(data => {
const url = `/claim/${claimId}`;
const headers = {
'Authorization': `Bearer ${token}`,
...body.getHeaders()
};

const result = await axios({
'post',
url: `${baseUrl}${url}`,
data: body,
headers,
});

return result.data;
}))
}


如果您仍然遇到问题,请告诉我,我很乐意为您提供帮助!

关于javascript - axios报错转换后的数据必须是字符串、ArrayBuffer、Buffer或Stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56803702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com