Как отправить массив и логические данные в теле POST-запроса API

#reactjs #api #rest #request #fetch-api

#reactjs #API #остальное #запрос #выборка-api

Вопрос:

Как я могу отправить массив и логические данные в теле POST-запроса API. Ниже приведен код, с помощью которого я пытался отправить массив и логические данные, но он преобразуется в строку.

 fetch('https://cors-anywhere.herokuapp.com/http://35.153.16.107:8080/restaurant/createProfile',{
        method:'post',
        headers:{Authorization:localStorage.getItem('token'), 'Content-Type':'application/json'},
        body: JSON.stringify({
            route:this.state.route,
            side:this.state.side,
            mustHaveDishes:this.state.mustTryDishes,      //This is array
            preOrderDineIn:this.state.preOrderDineIn,     //This is boolean
            preOrderTakeaway:this.state.preOrderTakeaway, // This is boolean
            veg:this.state.vegOnly                        // This is boolean 
        }),
    })
    .then(response => response.json())
    .then(data =>{
        if(data.statusCode === '2000'){
            console.log(this.state.mobile);
            this.props.onRouteChange('orderar','nav');
        }
        else
         console.log(data.error);
    })
  

Вот как я хочу отправить массив и логические данные-

         mustHaveDishes:["paratha"],
        preOrderDineIn:true,
        preOrderTakeaway:true,
        veg:true
  

Ответ №1:

Как вы думаете, что JSON.stringify делает, кроме как взять объект JSON и преобразовать его в строку?

Тело должно выглядеть следующим образом

 body: {
  route: this.state.route,
  side: this.state.side,
  mustHaveDishes: this.state.mustTryDishes,
  preOrderDineIn: this.state.preOrderDineIn,
  preOrderTakeaway: this.state.preOrderTakeaway,
  veg: this.state.vegOnly
},
  

Комментарии:

1. Но тогда как я буду преобразовывать маршрут и сторону в строку?

2. Что такое route side и почему они должны быть преобразованы в строку?

3. маршрут будет содержать два названия городов {exp- route: «NewYork-LA»}, которые будут введены пользователем, а side — название одного города {exp- side: «NewYork»}

4. На самом деле формат отправки данных в API- route:"New York- LA", side:"New York", mustHaveDishes:["paratha"], preOrderDineIn: true, preOrderTakeaway: true, veg: true

5. Итак, если route и side уже являются строками, почему вы хотите их упорядочить во второй раз?