1. 程式人生 > >springboot開發中 以POST方式向後臺傳遞json資料的時候引數值為null

springboot開發中 以POST方式向後臺傳遞json資料的時候引數值為null

自己寫了一個簡單的springboot後臺程式碼,當我用postman以post方式向後臺傳遞json物件時,後臺物件的引數值總是為null,找了好久終於解決了,下面分享一下我的解決問題艱辛路程。

明明我傳了引數值,但是debug除錯的時候就是獲取不到。

1.首先,我的controller中在引數前加了@RequestBody

/**************************帖子內容************************************************/

我的錯誤原因就是因為,在spring註解開發中,使用get或者是post請求的時候,就是需要這些注意事項  這裡寫圖片描述 這裡寫圖片描述

這裡寫圖片描述

就是這兩個地方搞混,後臺就會拿不到前臺傳遞的json資料

/**************************帖子內容************************************************/

2.修改完上面程式碼,一執行又報了這個錯

“Content type 'text/plain;charset=UTF-8' not supported”,網上又是一通百度,找到的答案是資料傳輸格式選擇錯誤,修改為下面即可。

è¿éåå¾çæè¿°

3.以上是通過postman測試的,具體放到前臺專案中,因為我前臺做的是跨域訪問,又遇到了一系列的問題。

a.錯誤資訊:Resolved exception caused by handler execution: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'name': was expecting 'null', 'true', 'false' or NaN; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'name': was expecting 'null', 'true', 'false' or NaN

原因前臺ajax請求傳遞的data引數格式不正確。

b.錯誤資訊:Access to XMLHttpRequest at 'http://localhost:8080/api/user/addUser' from origin 'http://localhost:8088' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.