Ajax请求传递数组参数的⽅法
⽅法⼀:拼接字符串参数
var arr={params:['param','param2']};
$.ajax({url:请求地址,
data:arr,
type:"POST",
success:function(){
//do something
}
});
⽅法⼆:ajax提交添加”traditional:true”参数
traditional:是否使⽤传统的⽅式浅层序列化。
数组或jQuery对象会按照name/value对进⾏序列化,普通对象按照key/value对进⾏序列化。
var arr=new Array();
arr[0]='param';
arr[1]='param2';
$.ajax({url:请求地址,
data:{params:arr},
type:"POST",
traditional:true, //默认false
success:function(){
//do something
}
});
通过ajax提交数组时,会⾃动在所设定的参数后⾯增加中括号:“[]”,导致后端spring MVC中的@RequestParam获取不到参数。ruby 字符串转数组
解决⽅法:
ajax请求时增加:traditional: true 就可以正常提交了。原因如下:
jQuery会调⽤jQuery.param序列化参数,jQuery.param( obj, traditional ),默认的话,traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架,但servelt api⽆法处理,我们可以通过设置traditional 为true阻⽌深度序列化。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。