Reactjs 无法将多部分/表单数据发送到nodejs服务器
我正在尝试在我的react应用程序中发送多部分/formdata。每次我使用axios访问PostAPI时,formdata总是空的。我尝试转换为JSON.stringify和key-value方法,但似乎没有任何效果。我确实将标题设置为“内容类型”:“多部分/表单数据”Reactjs 无法将多部分/表单数据发送到nodejs服务器,reactjs,axios,Reactjs,Axios,我正在尝试在我的react应用程序中发送多部分/formdata。每次我使用axios访问PostAPI时,formdata总是空的。我尝试转换为JSON.stringify和key-value方法,但似乎没有任何效果。我确实将标题设置为“内容类型”:“多部分/表单数据” postList = (e) => { e.preventDefault(); var postParams; if(this.state.message && this.st
postList = (e) => {
e.preventDefault();
var postParams;
if(this.state.message && this.state.parent){
postParams = {
message: this.state.message,
chat_m_id: this.state.parent,
depth: (1).toString(),
msg_icon: this.state.msg_icon.name
}
}
else{
postParams = {
message: this.state.message,
chat_m_id: (0).toString(),
depth: (0).toString(),
msg_icon: this.state.msg_icon.name
}
}
console.log(postParams);
let bodyFormData = new FormData();
//approach-one
bodyFormData.append('data',postParams);
//approach-one
// bodyFormData.append('data',JSON.stringify(postParams));
//approach-three
// for (let [key, value] of Object.entries(postParams)) {
// bodyFormData.append(`'${key}'`, JSON.stringify(`${value}`));
// }
console.log(bodyFormData) //this is always empty
axios.post(GlobalVar.BASE_URL+'api/msgtemplate/create', bodyFormData, {headers: GlobalVar.headersFormData})
.then(res => {
console.log(res)
this.props.history.push('/messages')
})
.catch(err => console.log(err.res));
}
我花了几个小时来解决这个问题,请帮助解决。以下是使用axios发送文件的示例: 在您的情况下,我已在此处调试了您的代码:
我正在采取类似的做法。如果你能帮助调试我的代码?这里是虚拟@bubble cord,你不能在同一个后端api上传文件和名字和姓氏,文件必须是不同的api,然后在不同的api中发送姓氏,我已经编辑了codesandbox来上传文件,如果你想上传名字,做另一个按钮,这样做
state = { selectedFile: null }
//handler for file change event
fileChangedHandler = event => {
this.setState({ selectedFile: event.target.files[0] })
}
uploadHandler = () => {
const formData = new FormData()
formData.append(
'myFile',
this.state.selectedFile,
this.state.selectedFile.name
)
axios.post('my-domain.com/file-upload', formData)
}