Отправить данные бланка запроса с изображением на задний план - PullRequest
0 голосов
/ 22 апреля 2020

В настоящее время вот мой код отправки почтового запроса на сервер (в reactjs с использованием топора ios):

sendDataToBackEnd = async () => {
      await axios.post(
        'http://localhost:9000/message',
         {
           testPlace: 
             {
               country: this.state.countryTest,
               city: this.state.cityTest,
               testSite: this.state.testSite
             },
           personalInformation:
             {
               name: this.state.name,
               birthday:this.state.birthday),
               gender:this.state.gender,
               address:this.state.address,
             }
         }
        ,
        { headers: { 
          'Content-Type': 'application/json'
        } }
      ).then((response) => {
          // got the response. do logic
      })
  }

Теперь мне нужно также отправить изображение человека назад конец, чтобы сохранить. Я думаю, что вместо этого я должен отправить данные формы. Однако у меня возникли проблемы с отправкой вышеупомянутой информации на сервер. Вот как я это делаю:

sendDataToBackEnd = async () => {
    let formData = new FormData();
    formData.append('testPlace',
             {
               country: this.state.countryTest,
               city: this.state.cityTest,
               testSite: this.state.testSite
             })
    formData.append('personalInformation',
             {
               name: this.state.name,
               birthday:this.state.birthday),
               gender:this.state.gender,
               address:this.state.address,
             })
    formData.append('file',this.state.picture)
      await axios.post(
        'http://localhost:9000/message',
         formData
        ,
        { headers: { 
          'Content-Type': 'multipart/form-data'
        } }
      ).then((response) => {
          // got the response. do logic
      })
  }

Однако, когда я проверяю запрос, отправленный на сервер, он показывает [Object Object]. Я думаю, что я написал форму DataData моего testPlace и personalInformation неправильно, но я не знаю, как это сделать. Кто-нибудь может это исправить?

1 Ответ

0 голосов
/ 22 апреля 2020

Вы не можете добавить объект в formData, вы можете прочитать больше на этот ответ . Сотри это

let formData = new FormData();
formData.append('file',this.state.picture)
formData.append('testPlace[country]', this.state.countryTest)
formData.append('testPlace[city]', this.state.cityTest)
formData.append('testPlace[testSite]', this.state.testSite)

formData.append('personalInformation[name]', this.state.name)
formData.append('personalInformation[birthday]', this.state.birthday)
formData.append('personalInformation[gender]', this.state.gender)
formData.append('personalInformation[address]', this.state.address)
...
...