ajax 請求spring之post


# 背景
現在使用spring boot開發一個web應用是非常普遍的了,ajax請求更是標配;那么你在ajax請求時,是否遇到過在controller中獲取不到參數的情況呢?特別是post請求;

# GET
GET請求的參數會拼接到URL中的,那么在controller的方法中,可以不指定`@RequestParam`注解,默認通過參數名稱從URL中獲取;也可以指定注解,但是如果不傳遞此參數就會報錯了,因為默認是必須的;

# POST
## 'Content-type': 'application/json;charset=UTF-8'
- 請求方式
這個請求參數就會在RequestPayload中傳遞了;

- 參數獲取
那么在Controller里,就必須通過@RequestBody來獲取參數了,並且@RequestBody在一個方法中只能使用一次,因為RequestBody是數據流只能被讀取一次;
假如存在一個Bean是User 有id、name等屬性;就是`(@RequestBody User user)`;RequestPayload中只有對象的屬性,並沒有`use`這個屬性;
假如使用的是基本類型,例如`@RequestBody String name`,那么RequestPayload中只需要有`world`就行了,即name的值,獲取到的就是name='world';

##   content-type:  application/x-www-form-urlencoded; charset=UTF-8
不明確指定時就默認是這種,Form表單就是這種;
- 請求方式
請求參數會在FormData中傳遞,並且要使用拼接的方式傳遞,不能使用json字符串,否則后端是獲取不到值的

- 參數獲取
在Controller里可以通過指定`@RequestParam`注解來獲取,也可以不指定;

# 總結







免責聲明!

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



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