ReactJS:无法在一次 POST 调用中发送 JSON 数据和 PDF 文件

Posted

技术标签:

【中文标题】ReactJS:无法在一次 POST 调用中发送 JSON 数据和 PDF 文件【英文标题】:ReactJS: Unable to send JSON data and PDF file in one POST call 【发布时间】:2017-12-12 11:39:18 【问题描述】:

我正在处理基于 GRAILS-ReactJs 的项目,该项目涉及我需要在一个 POST 调用中发送 RESUME 和 JSON 数据的场景。 但是,我可以一次调用发送文件,但我得到的数据是空的。 我在服务器端使用Grails-3 并将POST 请求作为多部分文件接收。我希望将 JSON 和 Multipart 文件对象组合在一个对象中以发送到服务器,并希望在服务器端接收文件和 JSON 数据。 我已经尝试更改标题的内容类型,但 ut 不起作用。

【问题讨论】:

【参考方案1】:

您不能将 JSON 数据与文件或任何其他附件一起发布。您可以将其作为表单数据发布到后端。表单数据作为多部分数据传递给具有相关边界的服务器。这是一个示例代码供您参考。您可以将 json 数据与 formData 一起作为键值对传递。

export function postAttachment (fileData, fileName) 
  let formData = new FormData()
  formData.append('prop1', 'value1')
  formData.append('prop2', 'value2')
  formData.append('upload', fileData, fileName)
  return fetch('/your/endpoint', 
    headers: 
      'Accept': 'application/json',
      'header1': 'headerValue1'
    ,
    method: 'POST',
    body: formData
  )

希望这会有所帮助。快乐编码!

【讨论】:

以上是关于ReactJS:无法在一次 POST 调用中发送 JSON 数据和 PDF 文件的主要内容,如果未能解决你的问题,请参考以下文章

在一次 send() 调用(tcp 套接字)中保证发送的最小数据大小是多少? [复制]

如何在一次 API 调用中通过 Amazon SNS 发送推送通知?

在 ReactJs 中使用 axios 发送 POST 请求时 $_FILES 为空

ReactJS获取POST文件到Flask后台(不会发送数据)。

C++ linux套接字,在一次调用中将字符串数组(char**)作为连接字符串发送

发送 post 请求时出现 CORS 错误,但在 Spring Boot 和 Reactjs 中未获取请求