首页 > 解决方案 > 将表单数据中的对象值传递给 API?

问题描述

这是我的 POSTMAN 后端 API 的结果:

我这里有两把钥匙,也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);
                 });
      }

之后,我 在 [Source: (String)\"[object Object]\" 处收到 Unrecognized token 'object': was expected ('true', 'false' or 'null')\n 的错误;行:1,列:8]

我需要使用 JSON.Stringify 吗?但我将如何在表单数据中使用它?

标签: reactjsform-data

解决方案


itemData在您的代码中必须是一个对象。

FormData append 方法的第二个参数应该是 USVString 或 Blob(包括 File 等子类)。

如果没有指定这些值,则通过调用toString方法将值转换为字符串。

formData.append('json', itemData)

formData.get('json')  // "[object Object]"

因此,您需要在附加到 formData 之前使用 JSON.stringify

formData.append('json', JSON.stringify(itemData))


推荐阅读