我正在尝试使用axios
发送 object 和 file 。
但是,服务器似乎无法获得我期望的数据。
我尝试同时发送即 state = {number: 1}
作为数据和文件。
//react js
let formData = new FormData();
formData.append('file', this.state.selectedImage);
formData.append('data', this.state);
axios.post('url is correct', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
我只想确保上面是在客户端中同时发送数据和文件的正确方法。
//node
.
.
.
body: { data: '[object Object]' },
files:
{ file:
{ name: '232217736.png',
data: <Buffer >,
size: 43015,
encoding: '7bit',
tempFilePath: '\\tmp\\tmp-1-1560804010093',
truncated: false,
mimetype: 'image/png',
md5: '84c3c16304d6140d960789e7037fba43',
mv: [Function: mv] } }
.
.
.
以上是从客户端获得的服务器。但是,我无法使用数据。
当我使用console.log()
时,数据不显示其内容,并且我无法使用任何适用于javascript对象的方法。
答案 0 :(得分:0)
发送整个状态对象时出错。
对象具有显示toString()
的不可见'[object Object]'
方法。试试:
alert({a: 'a', b: 'b'}) // [object Object]
有几种解决方法:
使用JSON.stringify
:
JSON.stringify({a: 'a', b: 'b'})
然后在后端使用JSON.parse
。
toString()
方法(不好的方法,非常糟糕)。