表单数据| axios:无法从 FormData 获取标题,错误:getHeaders 不是函数

acm*_*une 8 javascript form-data reactjs axios

我正在尝试使用form-dataand发布文本和文件字段axios,但出现错误:getHeaders()不是函数。下面是我的submit代码,请注意我使用的是Reactwith 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))
}
Run Code Online (Sandbox Code Playgroud)

我感兴趣的特定标题是Authorization,我可以手动设置它,但是需要边界,所以......我最好尝试让该getHeaders()功能工作。

我在这里没有遇到问题,getHeaders似乎是form-dataAPI 的一部分。

请帮忙。

acm*_*une 16

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

module.exports = typeof self == 'object' ? self.FormData : window.FormData;
Run Code Online (Sandbox Code Playgroud)

  • 那么...你是如何获得标题的? (3认同)