Ошибка Axios с кодом состояния 406 - PullRequest
0 голосов
/ 16 октября 2019

Я попытался отправить данные из реагирующей нативной многошаговой формы с помощью axios на сервер Symfony с платформой API.

Я использовал axios для обработки запроса следующим образом:

    const contactProject = new FormData()
    contactProject.append('propertyType', defaultpropretyType)
    contactProject.append('budget', budget)
    contactProject.append('surface', surface)
    contactProject.append('nbRooms', rooms)
    contactProject.append('tradeOperationType', defaultOperation)

, а затемЯ отправляю объект с сообщением axios в API следующим образом:

axios
      .post(`${API.URL}/contact_projects`, contactProject, {
        headers: {
          Authorization: `Bearer ${this.props.token}`,
          'Content-Type': 'multipart/form-data'
        }
      })
      .then(response => {
        console.log('LA REPONSE DE POST CONTACT PROJECT')
        console.log(response)
      })
      .catch(error => {
        console.log('ERROR POST CONTACT PROJECT')
        console.log(contactProject)
        console.log(error)
      })

Объект данных формы, который я отправляю в API, выглядит следующим образом:

FormData {
  "_parts": Array [
    Array [
      "propertyType",
      "maison",
    ],
    Array [
      "budget",
      "0",
    ],
    Array [
      "surface",
      5,
    ],
    Array [
      "nbRooms",
      5,
    ],
    Array [
      "tradeOperationType",
      "/trade_operation_types/1",
    ],
  ],
}

Вот почему яполучая ошибку 406, мне нужен чистый объект json для отправки, так как я могу преобразовать FormData в json?

1 Ответ

0 голосов
/ 16 октября 2019

Просто отправь это. Для вашего случая:

const contactProject={
propertyType: defaultpropretyType,
...
}
axios
      .post(`${API.URL}/contact_projects`, contactProject, {
        headers: {
          Authorization: `Bearer ${this.props.token}`,
          'Content-Type': 'application/json'
        }
      })
...