使用Redux-api-middleware将图像传递给API

时间:2019-03-06 06:16:04

标签: javascript reactjs redux-api-middleware

这是我当前的数据:

enter image description here

这里的图像文件是我最近在表单上添加的,因为它已经是可以使用redux-api-middleware进行API调用的工作表单。这是代码片段:

import { CALL_API } from "redux-api-middleware";

export function createTestAnnouncement(data) {
  return (dispatch, getState) => {
    const { auth: { oauthToken, oauthTokenSecret } } = getState();

    return dispatch({
      [CALL_API]: {
        endpoint: "/api/test-announcements",
        method: "POST",
        headers: {
          'Content-Type': 'application/json',
          'xoauthtoken': oauthToken,
          'xoauthtokensecret': oauthTokenSecret,
        },
        body: JSON.stringify(data),
        types: [CREATE_TEST_ANNOUNCEMENTS, CREATE_TEST_ANNOUNCEMENTS_SUCCESS, CREATE_TEST_ANNOUNCEMENTS_FAILURE]
      }
    })
  }
}

这是没有图像文件的代码,请注意,标题仍然是application / json,并且主体已解析为JSON。这是我在表单上带有图像文件的修改后的代码:

export function createTestAnnouncement(data) {
  return (dispatch, getState) => {
    const { auth: { oauthToken, oauthTokenSecret } } = getState();

    const form = Object.keys(data).reduce((f, k) => {
      f.append(k, data[k]);
      return f;
    }, new FormData());

    return dispatch({
      [CALL_API]: {
        endpoint: "/api/test-announcements",
        method: "POST",
        headers: {
          'Content-Type': 'multipart/form-data',
          'xoauthtoken': oauthToken,
          'xoauthtokensecret': oauthTokenSecret,
        },
        body: form,
        types: [CREATE_TEST_ANNOUNCEMENTS, CREATE_TEST_ANNOUNCEMENTS_SUCCESS, CREATE_TEST_ANNOUNCEMENTS_FAILURE]
      }
    })
  }
}

我的控制台出现错误:

  

错误:错误的内容类型标头,没有多部分边界

那我该如何解决呢?使用redux-api-middleware将图像发送到API的正确方法是什么?有人可以帮我吗?

0 个答案:

没有答案