我有一个问题,当我发送删除请求到服务器使用axios我的请求体是空的,但与相同的代码在邮政方法它的工作。
此处ID不为空
export const deleteClothes = async (id) => {
id.id = Number(id.id)
const {data} = await $authHost.delete('api/clothes', id)
return data
}
但此处请求体为空
async delete(req, res) {
const{id} = req.body
await Clothes.destroy({
where:{
id: id
}
})
return res.json(`Clothes deleted: ${id}`)
}
相同的发布方法:
export const createType = async (type) => {
const {data} = await $authHost.post('api/type', type)
return data
}
我不知道该怎么办,我已经试过很多方法了
2条答案
按热度按时间5fjcxozz1#
如果我们回顾一下the API documentation,我们可以看到
post
方法的签名是axios.post(url[, data[, config]])
,但是delete
方法的签名是axios.delete(url[, config])
--注意第二个参数是一个配置对象,而不是像post
那样的请求主体,你要把你想用作主体的对象直接作为配置对象传递。而是传递一个具有
data
属性的配置对象:旁注:将
deleteClothes
参数命名为id
是一个带有id
属性的对象,这会让人感到困惑。在上面的代码中,id
是对象,这似乎正是您在post
示例中所希望的。我建议将该参数重命名为反映 object 是什么的内容(一件衣服或其他内容)。fcg9iug32#
DELETE方法不应具有请求正文,因为并非所有请求都具有正文。相反,您应在查询字符串中包含要删除的信息,或将其作为URL中的路径参数。例如API/clothes/clothID