Нераспознанный токен «объект»: ожидал («истина», «ложь» или «ноль») ↵ в [Источник: (строка) "[объект Объект]"; строка: 1, столбец: 8] - PullRequest
0 голосов
/ 12 марта 2020

Я хочу передать значение из внешнего интерфейса в внутренний через API. Формат в form-data (в POSTMAN) Но я использовал то, что выдал ошибку, упомянутую в заголовке.

вот картинка из постмэнта:

enter image description here

А вот как я называю API реагировать. js

constructor (props){
        super(props);
        const supplier_id = parseInt(localStorage.getItem('id'));
        this.state ={
            supplier_id: supplier_id,
            item_name:'',
            item_shortDes: '',
            item_longDes: '',
            price: '',
            terms_agreement: '',
            Location: '',
            selectedFile: null, 
        }
        this.onChange = this.onChange.bind(this);
        this.createItem = this.createItem.bind(this);
      }
      createItem(){
        const itemData = this.state
        console.log(itemData)

        const formData = new FormData();    
        formData.append('json', itemData)

        fetch(`http://localhost:9000/api/item/submit`, 
        {
            method: 'post',
            body: formData
        }).then ((result) => {  
                let responseJSON = result;
                console.log(responseJSON);
                });
      }

Понятия не имею, что мне делать, чтобы это исправить. Может ли кто-нибудь дать мне подсказку об этой ошибке? это мне нужно сделать JSON.stringify? I

1 Ответ

0 голосов
/ 12 марта 2020

Я думаю, потому что в вашем почтальоне вы отправляете с двумя ключами json и itemFile, то вы не можете отправить все данные внутри json.

Попробуйте это:

createItem(){
    // destructuring your data here, seperate json and file
    const {selectedFile, ...rest} = this.state

    const formData = new FormData();    
    formData.append('json', rest)
    formData.append('itemFile', selectedFile) // append the selected file as well

    fetch(`http://localhost:9000/api/item/submit`, 
    {
        method: 'post',
        body: formData
    }).then ((result) => {  
            let responseJSON = result;
            console.log(responseJSON);
            });
  }

Я надеюсь, что это работает

...