Axios with Redux Saga在插入和放置到NodeJS+Express API时不发送表单数据

人气:738 发布:2022-10-16 标签: node.js express reactjs multer redux-saga

问题描述

目前我使用的是带NodeJS的Reaction,并表示为API。当我使用redux saga而不使用formData将数据发送到API时,它工作得很好,但当我尝试使用formData提交时,出现了res消息,我认为这是因为发送的有效负载为空

并且在网络负载选项卡上,不发送任何表单数据

以下是我使用的代码

export const addNewData = values => {
    const data = new FormData()
    data.append("nama", values.nama)
    data.append("harga", values.harga)
    // data.append("image", selectedFiles)
    data.append("fasilitas", values.fasilitas)
    data.append("deskripsi", values.deskripsi)

    post(url.ADD_NEW_DATA, data, {
        headers: { "content-type": "multipart/form-data" },
    })
}

const axiosApi = axios.create({
  baseURL: API_URL,
})

axiosApi.defaults.headers.common["authorization"] = token

axiosApi.interceptors.response.use(
  response => response,
  error => Promise.reject(error)
)

export async function post(url, data, config = {}) {
    return axiosApi
        .post(url, { ...data }, { ...config })
        .then(response => response.data.data)
}

然后我不使用Redux Saga,直接在提交按钮上尝试,它工作得很好

Axios.post("http://localhost:4000/v1/data/insert", data, {
        headers: {
          "content-type": "multipart/form-data",
          "authorization": token,
        },
      })
        .then(res => {
          console.log("success ", res)
        })
        .catch(err => console.log(err))

有谁能帮帮我吗?我想继续使用Redux Saga

更新 当我在异步函数中将{...data}修改为data时,formData发送正常,有谁能解释一下吗?当我提交非FormData格式的数据时,是否会受到影响?

export async function post(url, data, config = {}) {
    return axiosApi
        .post(url, data, { ...config })
        .then(response => response.data.data)
}

数据

通过将{...推荐答案}更改为数据解决

export async function post(url, data, config = {}) {
    return axiosApi
        .post(url, data, { ...config })
        .then(response => response.data.data)
}

454