Javascript 如何在api中发送数据而不丢失数据
在下面的代码中,我将对象添加到reactJS中的媒体阵列中Javascript 如何在api中发送数据而不丢失数据,javascript,php,reactjs,laravel,axios,Javascript,Php,Reactjs,Laravel,Axios,在下面的代码中,我将对象添加到reactJS中的媒体阵列中 const formData = new FormData() formData.append('file', file, file.name) const obj = { 'id': id, 'type': 'doc', 'data': formData, url: file }; setID(id + 1); setMedia([...media, obj]); 现在我通过axios将其发送到api functi
const formData = new FormData()
formData.append('file', file, file.name)
const obj = {
'id': id,
'type': 'doc',
'data': formData,
url: file
};
setID(id + 1);
setMedia([...media, obj]);
现在我通过axios将其发送到api
function addNew() {
setProgressing(true)
axios.post(uri + '/api/add', {
map_id: props.data.id,
questions: JSON.stringify(media)
})
.then(res => {
props.updateStep();
})
.catch(err => {
});
}
但在服务器端,我收到如下数组对象
请参阅数据,url为空
{id: 1, type: "image", data: {{}}, url: {}}
这是请求头
设置每次上传图像时调用的媒体代码
function handleUploadChange(e) {
handleClose();
const file = e.target.files[0];
if (!file) {
return;
}
const reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = () => {
const formData = new FormData()
formData.append('file', file, file.name)
const obj = { 'id': id, 'type': 'image', 'data': formData, url: file };
setID(id+1);
setMedia([...media, obj]);
}
reader.onerror = function () {
console.log("error on load image");
};
}
我找到了解决办法
我在base64中转换图像,并在请求中发送字符串,然后在服务器端将其再次转换为图像。我进一步解释了我的代码问题您的formData和文件为空,这就是它无法传递的原因。你必须检查它们为什么是空的。如果我对媒体阵列执行
JSON.stringify()
操作,它们就会变成空的。你必须透露更多的信息code@EugeneSunic我想要的是将图像存储在对象数组中,然后将该数组发送到Api