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`註解來獲取,也能夠不指定;

# 總結




相關文章
相關標籤/搜索