小编Jay*_*hoo的帖子

Axios POST 请求不使用“multipart/form-data”发送任何内容 [React Native - Expo]

设想

前端基本上是一个 React Native (Expo) 应用程序,用户可以在其中发布报告 - 这包括拍摄多张照片并填写一些详细信息。

后端只是node.js,带有 Express 和 Multer。

问题

我使用 Axios 通过 发送图像和表单数据FormData(),但是在服务器端,req.body 和 req.files 不包含任何内容

这里的一件事是,通过 POSTMAN 发送相同的数据工作完全正常,图像存储到 S3 中,表单详细信息存储在数据库中。这是通过应用程序/模拟器不起作用。

我尝试删除“multipart/form-data”标头,这是 console.log(req.body) 的输出(req.files 显示未定义)

{
  _parts: [
    [ 'userId', '1f400069-07d0-4277-a875-cbb2807750c5' ],
    [
      'location',
      'some location'
    ],
    [ 'description', 'Aaaaa' ],
    [ 'report-images', [Object] ]
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我将“multipart/form-data”标头放回时,该输出甚至没有出现。

我做了什么

过去几个小时我一直在寻找解决方案,但没有一个有效。这些解决方案是:

  1. 在“multipart/form-data”标题后面添加边界
  2. 将类型设置为“image/jpeg”
  3. 将文件 uri 修剪为“file://”

但它们都不起作用

这是我的代码:

React Native 前端(博览会)

   const submitReport = async () => {
    setShowLoading(true);

    // Validate …
Run Code Online (Sandbox Code Playgroud)

node.js multer react-native axios expo

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

axios ×1

expo ×1

multer ×1

node.js ×1

react-native ×1