1. 程式人生 > >前臺傳遞JSON資料,後臺spring mvc如何接收資料

前臺傳遞JSON資料,後臺spring mvc如何接收資料

如何傳遞JSON資料到後臺?

方式一, 使用post請求,請求型別為:application/x-www-form-urlencoded; charset=UTF-8

$.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) {
				//...
			}
		});
http請求體如下:


可以看出, 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) {//...}