jqueryajaxcontentType设置
默认get⽅法没有contentType,post⽅法的contentType为:application/x-www-form-urlencoded; charset=UTF-8(1)设置成application/x-www-form-urlencoded,后端可以直接⽤
String username = Parameter("username");
String password = Parameter("password");
getParamter⽅法获取。
如:
$.ajax({
type: 'post',
url:'/contentType',
contentType:'application/x-www-form-urlencoded',
data:{
username:'admin',
password:'123123'
},
dataType:'json',
success:function (data) {
}
})
(2)设置成application/json
这个时候可以看出取不到数据了。
解决办法:
InputStream inputStream = InputStream();
String param = String(inputStream);
如果这样请求:
$.ajax({
type: 'post',
url:'/contentType',
contentType:'application/json',
data:{
username:'admin',
password:'123123'
},
dataType:'json',
jquery实现ajax
success:function (data) {
}
})
拿到的是⼀个&分隔开的键值对
所以前端先做⼀层json的转化:
var info ={
username:'admin',
password:'123123'
};
$.ajax({
type: 'post',
url:'/contentType',
contentType:'application/json',
data: JSON.stringify(info),
dataType:'json',
success:function (data) {
}
})
然后就可以得到标准的json的格式了。接下来就是json的转化了
接下来测试:'application/json'和'application/x-www-form-urlencoded'能携带的数据量的差异:
⽤application/json:后⾯‘2’长度⼏⼗万,后端都可以接收。
改⽤另外⼀个也可以
但是get⽅法表单传值和json传值是有限制的,太多服务端会报错:
所以⽤post传值长度⼀般情况是是⾜够的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论