使用axios.post後臺獲取不到params(參數)/bodyParam

正常情況

如果使用axios.post

axios post請求  Content-Type默認爲 application/x-www-form-urlencoded,我們傳遞參數的時,params裏面的參數(簡單的對象,通過 "{}" 或者 "new Object" 創建的)會被以&拼接的方式拼接到請求地址的後面,data裏面的參數(簡單的對象,通過 "{}" 或者 "new Object" 創建的)會以Form Data的形式存在,但是Form Data裏面把我們傳進去的整體當成了一個key值,沒有value

解決:導入qs庫(qs庫已經包含在axios中,不需要重新安裝),data裏面的參數使用qs.stringify方法來轉換,轉換之後後端才能正常獲取

 

@RequestParam和@RequestBody的區別

若後端使用@RequestParam 來接收前端傳過來的參數的,Content-Type要設置爲application/x-www-form-urlencoded,並且需要對data使用qs.stringify來進行轉換;

若後端使用@RequestBody 來接收前端傳過來的參數的,Content-Type要設置爲application/json;

參考:post傳參params與body的區別(@RequestParam和@RequestBody的區別)

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