ajax传参的3种形式
ajax传递参数的三种形式
在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注解
更多推荐
所有评论(0)