Передать значение объекта в данных формы в API? - PullRequest
0 голосов
/ 12 марта 2020

Вот результат моего бэкэнда API от POSTMAN:

Здесь у меня есть два ключа: json, а также itemFile

enter image description here

   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);
                 });
      }

После этого я получил ошибку Нераспознанный токен «объект»: ожидал («истина», «ложь» или «ноль») \ n в [Источник: (строка )\"[Объект Object]\"; строка: 1, столбец: 8]

Нужно ли мне использовать JSON .Stringify? но как бы я использовал его в данных формы?

1 Ответ

1 голос
/ 12 марта 2020

itemData в вашем коде должен быть объектом.

Второй аргумент метода добавления FormData должен быть USVString или Blob (включая подклассы, такие как File).

Если ничего из них не указано, значение преобразуется в строку с помощью метода toString.

formData.append('json', itemData)

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

Итак, вам нужно использовать JSON .stringify перед добавлением в formData

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

...