最近在學習一下前端,http異步請求框架之前一直沿用jquery。突然發現axios在github上start數也是很牛,vue.js推薦使用axios。
所以就拿過來看看。無外乎就是get post請求等等,很容易上手。看一下文檔 幾分鐘能寫一個小demo測試出來。get請求完全是沒有
問題的,但是post很多人不光我遇到的問題就是傳遞參數給後端,但是後端接收不到參數。
仔細一看http請求頭和請求體,果然body裏面傳遞的參數不對。以前是k-v形式,但是axios把我想要傳遞測參數變爲一個json字符
串傳遞過去了,明顯是不是我預期的。所以 ,我使用jquery發同樣的請求與其對比,對比知道確實發送的差異在於參數。網上搜索看
了許多,有的說改請求頭 content-type:application/x-www-form-urlencoded; charset=UTF-8。但是還是沒有用。 所以只能去Axios的
github的issue裏面翻了,果然有一個issue提到:https://github.com/axios/axios/issues/1498。如下即可解決
var data = new FormData()
data.append("name","zhangsan")
axios.post("post.php",data).then(function(resp){
console.log("axios")
console.log(resp)
})
}).catch(function(error){
console.log("錯誤信息:"+error)
})
new 一個FormData對象 然後將數據鍵值對放進去即可。 最後我們可以自己封裝我們的axios 統一初一傳遞的參數即可。
其實網上還有人說用qs模塊對參數進行處理,顯得有點殺雞用牛刀了。