vue+axios發送post請求yii2接受不到參數

最近在學習一下前端,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模塊對參數進行處理,顯得有點殺雞用牛刀了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章