данные формы |axios: невозможно получить заголовки из FormData, ошибка: getHeaders не является функцией - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь опубликовать текстовые и файловые поля, используя form-data и axios, но получаю сообщение об ошибке: getHeaders() не является функцией.Ниже приведен мой код submit, обратите внимание, что я использую React с Typescript.

import * as FormData from 'form-data'
import axios from 'axios'

submit(event: React.FormEvent<HTMLFormElement>) {
  event.preventDefault()

  const { title, description, pictureFile } = this.state

  let data = new FormData()
  data.append('title', title)
  data.append('description', description)
  data.append('picture', pictureFile)

  axios.post('/api/route', data, {
    headers: data.getHeaders() // ERROR: getHeaders is not a function
  })
    .then(res => handle(res))
    .catch(err => handle(err))
}

Особый интересующий меня заголовок - Authorization, я могу установить его вручную, нотогда границы требуются, так что ... я лучше попытаюсь заставить эту функцию getHeaders() работать.

Я не вижу здесь проблемы, getHeaders, кажется, является частью form-data API.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 14 февраля 2019

form-data используется только на Node, если вы запустите его в браузере, он переключится на window's версию FormData.Я видел это в их коде.

module.exports = typeof self == 'object' ? self.FormData : window.FormData;
...