這幾天在學(xué)習(xí)使用 axios 的時候發(fā)現(xiàn)一個問題陋守,在使用 axios.post 和 axios.put 時,后臺均可以通過 req.body 訪問到參數(shù),但是使用 axios.delete 時后臺卻無法接收到參數(shù)溯警,而網(wǎng)上無人解答此問題盖淡,難道大家都只用 axios.post 嗎年柠,但是我又很犯賤,偏想要用 delete褪迟,無奈之下只好去查看源碼冗恨,但是作為菜鳥答憔,我很少去看源碼這種東西,看了半天掀抹,終于發(fā)現(xiàn)了問題
各位觀眾虐拓,看到?jīng)]有,delete 和 post 傲武、put 的參數(shù)不一樣蓉驹,post、put都有三個參數(shù)谱轨,分別為url戒幔、data還有config,而delete只有兩個參數(shù)土童,第一個是url诗茎,第二個是config,我又去看config所實現(xiàn)的接口類型
這個接口里面也有一個data献汗,突然間我就明白了敢订,我之前發(fā)請求時是這樣調(diào)用的 axios.post('/api',{id:1}) 、axios.put('/api',{id:1})罢吃,我原以為delete應(yīng)該也是這樣調(diào)用 axios.delete('/api',{id:1}) 楚午,但后臺卻接收不到,是因為 post 和 put 第二個參數(shù)是data尿招,所以可以直接在第二個參數(shù)的位置寫上數(shù)據(jù)矾柜,后臺可以訪問到,而delete第二個參數(shù)是 config 就谜,所以要通過 config 里面的 data 來傳參怪蔑,所以應(yīng)該這樣寫:
axios.delete('/api?id='+id).then()