前臺傳遞JSON資料,後臺spring mvc如何接收資料
阿新 • • 發佈:2019-02-11
如何傳遞JSON資料到後臺?
方式一, 使用post請求,請求型別為:application/x-www-form-urlencoded; charset=UTF-8
http請求體如下:$.ajax({ url : url, type : 'POST', data : { username : $("input[name='username']").val(), userCode : $("input[name='userCode']").val(), tureName : $("input[name='tureName']").val(), password : hex_md5(password), deptId : $("input[name='deptId']").val(), roleId : $("input[name='roleId']").val() }, contentType : "application/x-www-form-urlencoded; charset=UTF-8", dataType : 'json', success : function(result) { //... } });
可以看出, json物件的資料,被轉化為表單請求資料傳遞到伺服器上。
後臺接收資料:
@ResponseBody
@RequestMapping(value = "/user/edit", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON)
public String editUser(User user) {//...}
方式二,使用Post請求,請求資料型別為:application/json到後臺,此方式可傳遞複雜的json資料物件到後臺。
$.ajax({ url : url, type : 'POST', data : JSON.stringify({ username : $("input[name='username']").val(), userCode : $("input[name='userCode']").val(), tureName : $("input[name='tureName']").val(), password : hex_md5(password), deptId : $("input[name='deptId']").val(), roleId : $("input[name='roleId']").val() }), contentType : 'application/json', dataType : 'json', success : function(result) { //.... } });
http請求體如下:
contentType : 'application/json;charset=utf-8' 表示前臺傳遞資料為json型別資料,作為請求體內容提交到伺服器,中文需要加上編碼方式。
dataType : 'json', 表示前天希望後臺響應的資料型別
其中 data資料需要用JSON.stringify來將JSON物件轉化為JSON字串。
後臺@RequestBody來標識需要從請求體中解析資料,如下:
@ResponseBody @RequestMapping(value = "/user/edit", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON) public String editUser(@RequestBody User user) {//...}