在Javascript语法中,{“foo”:“bar”}等效于{foo:“bar”}。

jax有三种传递传递data的方式:

json格式
json字符串格式
标准参数模式
1.json格式形如:
{“username”:”chen”,”nickname”:”alien”}

$.ajax({
	type: "post",
	url: "/test/saveUser",
	data: {
		"username": "chen",
		"nickname": "alien"
	},
	dataType: "json",
	success: function(data) {
		console.log(data);
	}
});

2.json字符串

形如:
“{“username”:”chen”,”nickname”:”alien”}” 或者JSON.stringify({“username”:”chen”,”nickname”:”alien”})

$.ajax({
	type: "post",
	url: "/test/saveUser",
	data: JSON.stringify({
		"username": "chen",
		"nickname": "alien"
	}),
	contentType: "json/application"
	dataType: "json",
	success: function(data) {
		console.log(data);
	}
});

用此格式get请求参数传递不过去,不会把json串解析成参数
而且需要添加 contentType:”json/application”

3.标准参数模式

形如:
“username=chen&nickname=alien

$.ajax({
	type: "post",
	url: "/test/saveUser",
	data: "username=chen&nickname=alien",
	dataType: "json",
	success: function(data) {
		console.log(data);
	}
});

$(“#form1”).serialize() 就是把表单的数据拼成这个格式的字符串!

总结:
post请求能用1、2、3类型传递参数
get请求能用1、3类型传递参数
$(“#form1”).serialize() 是将对应表单中的input的name和value进行拼装,最后拼成3类型的字符串

总结一下ajax请求能够发送的数据格式:

(1)&连接的key=value,适用于GET和POST请求,此时contentType必须为application/x-www-form-urlencoded,后端不能使用@RequestBody注解
(2)json对象,适用于GET和POST请求,且此时contentType必须为application/x-www-form-urlencoded,ajax会自动将 json对象转化为&连接的key=value格式的数据,GET请求就拼接在url后面,POST请求就放入post请求体中,后端不能使用@RequestBody注解
(4)json字符串,只适用于POST请求,且此时contentType必须为application/json,后端必须使用@RequestBody注解

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐