将表单数据中的对象值传递给 API?
Pass object value in form data to API?
这是我的后端 API 来自 POSTMAN 的结果:
我这里有两把钥匙,分别是json
和itemFile
createItem(){
const itemData = this.state;
const selectedFile = this.state;
const formData = new FormData();
formData.append('json', itemData)
formData.append('itemFile', selectedFile)
console.log(formData)
fetch(`http://localhost:9000/api/item/submit`,
{
method: 'post',
body: formData
}).then ((result) => {
let responseJSON = result;
console.log(responseJSON);
});
}
在那之后,我得到了错误
无法识别的令牌 'object':需要('true'、'false' 或 'null')\n 在 [来源:(字符串)\"[object Object]\ ";行:1,列:8]
我需要使用JSON.Stringify吗?但我将如何在表单数据中使用它?
itemData
在你的代码中必须是一个对象。
FormData append 方法的第二个参数应该是一个USVString 或Blob(包括子类如File)。
如果指定了其中的 none,则通过调用 toString
方法将值转换为字符串。
formData.append('json', itemData)
formData.get('json') // "[object Object]"
因此,您需要在附加到 formData
之前使用 JSON.stringify
formData.append('json', JSON.stringify(itemData))
这是我的后端 API 来自 POSTMAN 的结果:
我这里有两把钥匙,分别是json
和itemFile
createItem(){
const itemData = this.state;
const selectedFile = this.state;
const formData = new FormData();
formData.append('json', itemData)
formData.append('itemFile', selectedFile)
console.log(formData)
fetch(`http://localhost:9000/api/item/submit`,
{
method: 'post',
body: formData
}).then ((result) => {
let responseJSON = result;
console.log(responseJSON);
});
}
在那之后,我得到了错误 无法识别的令牌 'object':需要('true'、'false' 或 'null')\n 在 [来源:(字符串)\"[object Object]\ ";行:1,列:8]
我需要使用JSON.Stringify吗?但我将如何在表单数据中使用它?
itemData
在你的代码中必须是一个对象。
FormData append 方法的第二个参数应该是一个USVString 或Blob(包括子类如File)。
如果指定了其中的 none,则通过调用 toString
方法将值转换为字符串。
formData.append('json', itemData)
formData.get('json') // "[object Object]"
因此,您需要在附加到 formData
之前使用 JSON.stringifyformData.append('json', JSON.stringify(itemData))