javascript - Axios 发布表单数据在 native react 中无法正常工作

标签 javascript react-native axios multipartform-data

我需要在 react-native 中将图像和一些细节作为表单数据发送

为此,我使用了 axios post 方法。

这是我的代码:

const formData = new FormData();

formData.append('taskId', taskId);
formData.append('taskName', taskName);
formData.append('projectId', projectId);
formData.append('projectName', projectName);
formData.append('media', media);

const res = await Axios.post(`${URL}`, formData, {
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'multipart/form-data',
  },
});

我的服务器正在获取空的媒体文件..任何人都可以知道我在这里做错了什么!?

这是我的请求 header : My request header

附言:我。已经对 postman 进行了测试,并且在他们的网站上工作正常

最佳答案

我认为问题在于您正在尝试将 media 作为 json 对象发送。有两种方法可以解决这个问题。

<强>1。提交前对媒体进行字符串化

    const formData = new FormData();
    formData.append('media', JSON.stringify(media));

您可能还需要对后端进行必要的更改以处理此问题。

<强>2。将媒体对象拆分为单独的字段

您提到 media 对象有名称和文件,因此您可以这样做。

    const formData = new FormData();
    formData.append('mediaName', media.name);
    formData.append('media', media.file);

请注意,在第二个示例中,我假设了 media 对象的属性。

我认为对于您的用例,第二种解决方案的某些变体是首选,因为它已经在 postman 上运行。

关于javascript - Axios 发布表单数据在 native react 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68089031/

相关文章:

javascript - 匹配这个或完全匹配那个的正则表达式

javascript - 与传单协调反射问题

javascript - 让文本区域正确计算换行符

javascript - 如何在 React Native 中实现回调函数?

javascript - 注册 Amazon Web Service Cognito 错误 InvalidParameterException

reactjs - 对所有 Axios 请求使用 Auth0 React Hook

javascript - 循环通过 $id 从 Firebase 后端生成自定义的唯一页面数据

ios - 在 iOS 上 native 找不到 RNFirebase 核心模块 - 未修复

node.js - axios POST 请求不起作用

javascript - Vue 对象未使用 axios POST 请求更新