form-data | axios: Unable to get headers from FormData, Error: getHeaders is not a function

form-data | axios: Unable to get headers from FormData, Error: getHeaders is not a function

我正在尝试使用 form-dataaxios post 文本和文件字段,但出现错误:getHeaders() 不是函数。下面是我的 submit 代码,请注意我使用 ReactTypescript

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))
}

我特别感兴趣的 header 是 Authorization,我可以手动设置它,但是边界是必需的,所以...我最好尝试得到那个 getHeaders() 功能正常工作。

我不明白这里的问题,getHeaders 似乎是 form-data API 的一部分。

请帮忙。

form-data 仅在 Node 上使用,如果您在浏览器上 运行 它,它将切换到 FormDatawindow's 版本。我在他们的代码中看到了这一点。

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