Как поместить изображение и текст в api с помощью axios - PullRequest
1 голос
/ 18 июня 2020
        const fd = new FormData()
        fd.append('pp', this.state.image)
        fd.append('username', this.state.user.username)
        fd.append('email', this.state.user.email)
        fd.append('bio', this.state.user.bio)
        console.log(this.state.user)
        axios.put(`http://127.0.0.1:8000/users/profile/update/${this.state.id}/`, fd, {
            headers: {
                'Content-Type': 'multipart/form-data'
            }
        })

Приведенный выше код приводит к неверному запросу 400, но когда я пытаюсь использовать почтальон, он работает. Поэтому я считаю, что неправильное использование formdata может кому-то помочь. Кстати, всякий раз, когда я обновляю только изображение, оно работает, но как только я обновляю одно из текстовых полей, этого не происходит.

1 Ответ

0 голосов
/ 18 июня 2020

Имя параметров тела вашего запроса в ax ios не является строкой. Это просто название поля. Итак, тело вашего запроса должно выглядеть так: -

fd = {
  pp : this.state.image,
  username : this.state.user.username,
  email : this.state.user.email,
  bio : this.state.user.bio
}
...