带有 Redux Saga 的 Axios 在插入并放入 nodeJs+express 时不发送表单数据 api
Axios with Redux Saga not sending form data when insert and put to nodeJs+express api
目前我正在使用 react with nodeJS 并表示为 api。当我使用没有 formData 的 redux saga 将数据发送到 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}更改为异步函数中的数据时,formData正常发送成功,任何人都可以解释一下吗?提交非formData格式的数据会影响吗?
export async function post(url, data, config = {}) {
return axiosApi
.post(url, data, { ...config })
.then(response => response.data.data)
}
通过将 {...data} 更改为数据解决
export async function post(url, data, config = {}) {
return axiosApi
.post(url, data, { ...config })
.then(response => response.data.data)
}
目前我正在使用 react with nodeJS 并表示为 api。当我使用没有 formData 的 redux saga 将数据发送到 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}更改为异步函数中的数据时,formData正常发送成功,任何人都可以解释一下吗?提交非formData格式的数据会影响吗?
export async function post(url, data, config = {}) {
return axiosApi
.post(url, data, { ...config })
.then(response => response.data.data)
}
通过将 {...data} 更改为数据解决
export async function post(url, data, config = {}) {
return axiosApi
.post(url, data, { ...config })
.then(response => response.data.data)
}