来源.在axios中使用formData时,on不是一个函数



我在这里使用fromData有问题

const res = await axios.post(
clientPayload?.uploadLink,
{ data: formData },
{
headers: {
'content-type': 'multipart/form-data',
},
}
);

它与请求包一起工作,但与axios一起显示此错误。请帮忙这是我的函数

"

export const uploadVideo = async (title: string, file: any) => {
const formData = new FormData();
try {
const response = await axios.put(
`https://url.com/api/videos`,
{},
{
params: {
title,
},
headers: {
Authorization: `Apisecret ${process.env.VIDEO_SECRET}`,
Accept: 'application/json',
['Content-Type']: 'application/json',
},
}
);
const data = await response?.data;
const clientPayload = data?.clientPayload;
formData.append('policy', clientPayload?.policy);
formData.append('key', clientPayload?.key);
formData.append('x-amz-signature', clientPayload['x-amz-signature']);
formData.append('x-amz-algorithm', clientPayload['x-amz-algorithm']);
formData.append('x-amz-date', clientPayload['x-amz-date']);
formData.append('x-amz-credential', clientPayload['x-amz-credential']);
formData.append('success_action_status', '201');
formData.append('success_action_redirect', '');
formData.append('file', {
filepath: fs.createReadStream(file.path),
filename: file.path,
contentType: null,
});
const res = await axios.post(
clientPayload?.uploadLink,
{ data: formData },
{
headers: {
'content-type': 'multipart/form-data',
},
}
);
return res;
} catch (error) {
if (axios.isAxiosError(error)) {
logger.error('error message: ', error);
} else {
logger.error('unexpected error: ', error);
}
}
};

"

URLSearchParams代替form-data试试

export const uploadVideo = async (title, file) => {
try {
const response = await axios.put(
`https://url.com/api/videos`,
{},
{
params: {
title,
},
headers: {
Authorization: `Apisecret ${process.env.VIDEO_SECRET}`,
Accept: 'application/json',
'Accept-Encoding': 'application/json',
['Content-Type']: 'application/json'
},
}
);
const data = await response?.data;
const clientPayload = data?.clientPayload;
const res = await axios.post(
clientPayload?.uploadLink,
new URLSearchParams({
'policy': clientPayload?.policy,
'key': clientPayload?.key,
'x-amz-signature': clientPayload['x-amz-signature'],
'x-amz-algorithm': clientPayload['x-amz-algorithm'],
'x-amz-date': clientPayload['x-amz-date'],
'x-amz-credential': clientPayload['x-amz-credential'],
'success_action_status': '201',
'success_action_redirect': '',
'file': {
filepath: fs.createReadStream(file.path),
filename: file.path,
contentType: null,
}
}),
{
headers:
{
'Content-Type': 'application/x-www-form-urlencoded',
'Accept-Charset': 'UTF-8'
}
}
);
return res;
} catch (error) {
if (axios.isAxiosError(error)) {
logger.error('error message: ', error);
} else {
logger.error('unexpected error: ', error);
}
}
};

最新更新