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


1.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方法來轉換,轉換之后后端才能正常獲取

 

 

 

 

 

 

 

2.post請求當Content-Type設置為application/json;時,params(簡單對象)里面的參數仍然會被拼接到請求連接后面,但是data(簡單對象)里面的參數是放到Request Payload中

 

 

 

 

 

 

 3.@RequestParam和@RequestBody的區別

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM