我正在尝试使用 axios
发送对象和文件。
但是,服务器似乎无法按照我的预期获取数据。
我尝试将 即 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 对象的方法。
最佳答案
您发送整个状态对象时出错。
对象具有不可见的 toString()
方法,用于显示 '[object Object]'
。尝试:
alert({a: 'a', b: 'b'}) // [object Object]
您可以使用JSON.stringify
:
JSON.stringify({a: 'a', b: 'b'})
并在后端使用JSON.parse
。
关于node.js - 使用 axios 发布数据和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56638845/