axios 请求失败,状态码为 406

Axios request failed with status code 406

我尝试使用 axios 将数据从反应本机多步骤表单提交到使用 api 平台的 symfony 后端。

我使用 axios 来处理这样的请求:

    const contactProject = new FormData()
    contactProject.append('propertyType', defaultpropretyType)

然后我将带有 axios post 的对象发送到 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?

发送即可。 对于您的情况:

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