@RequestBody和@RequestParam注解以及返回值,ajax相關知識點


  關於前后端傳遞json數據這塊查了好多資料,好多地方還是不清楚,先記錄一下清楚的地方。

  如果我們前端使用ajax發json數據,一般都加上contentType:'application/json;charset=utf-8',如果加上這個,那么后端一定得使用@RequestBody接收,這倆是成對出現的,然后@RequestBody只能接收請求體的數據所以只能接post請求,然后使用了application/json這種形式只能發送json字符串。

  同樣的,如果不加application/json那么后端一般使用@RequestParam接收,@RequestParam接收的是地址欄的數據所以只能接get請求,這個時候前台不能發json字符串,可以發json對象。

  ajax有三種傳遞data的方式:json對象{“username”:”chen”,”nickname”:”alien”}、json字符串’{“username”:”chen”,”nickname”:”alien”}‘,只能用單引號、標准參數name=chen&id=3,感覺json形式用的多點。

  如果后端要跳頁面的時候返回值類型必須是String,這個時候不能加@ResponseBody或者@RestController注解,因為這兩個注解會將返回數據解析成字符串,如果返回值是對象會返回json對象。如果不想在后端跳頁面,可以在前端利用ajax,在回調函數中使用window.location.href="xxx.html";跳轉頁面。

  后端接收未使用@RequestBody注解,只有對象作為參數接收,打印出來是引用地址,如果是@RequestBody,打印出來是json對象。在后台service層都可以直接做參數使用,沒有區別,具體有啥區別不清楚。

  

  


免責聲明!

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



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