这几天在学习使用 axios 的时候发现一个问题,在使用 axios.post 和 axios.put 时,后台均可以通过 req.body 访问到参数,但是使用 axios.delete 时后台却无法接收到参数,而网上无人解答此问题,难道大家都只用 axios.post 吗,但是我又很犯贱,偏想要用 delete,无奈之下只好去查看源码,但是作为菜鸟,我很少去看源码这种东西,看了半天,终于发现了问题
各位观众,看到没有,delete 和 post 、put 的参数不一样,post、put都有三个参数,分别为url、data还有config,而delete只有两个参数,第一个是url,第二个是config,我又去看config所实现的接口类型
这个接口里面也有一个data,突然间我就明白了,我之前发请求时是这样调用的 axios.post('/api',{id:1}) 、axios.put('/api',{id:1}),我原以为delete应该也是这样调用 axios.delete('/api',{id:1}) ,但后台却接收不到,是因为 post 和 put 第二个参数是data,所以可以直接在第二个参数的位置写上数据,后台可以访问到,而delete第二个参数是 config ,所以要通过 config 里面的 data 来传参,所以应该这样写:
axios.delete('/api',{data:{id:1}})
在数据的外面包一个data就可以了
本人才疏学浅,但优点是喜欢交流,欢迎大家加入617597792前端开发交流互助群