//创建一个数组--以数组方式存数据:耕作方式为1,2
var BoxArr = new Array();
BoxArr.push(1);
BoxArr.push(2);
//AJAX与后台交互
$.ajax({
url: '/user/suggests',//后台地址--填自己后台地址
type: 'post',
traditional: true, //这里设置为true
data: {
"width":width,
"length":length,
"method1":BoxArr
},//传给后台相应数据
success:function (a) {
console.log(a)
alert("建议畦田宽度为: "+a.width+"米;\n "
+"畦田长度为:"+a.length+"米;\n"
+"耕作方式为:"+a.method1+";")
},
error:function(e) {
console.log(e)
}
})
jQuery $.ajax传递数组的traditional参数传递必须true!
不设置的话,在java后台是无法取到参数的, 浏览器发送的参数的名字为BoxArr[]而不是我们所定义的BoxArr,也就是说,当传递数组时,会在我们的数组名称后自动加上”[]”,所以后台接不到。因为jQuery需要调用jQuery.param序列化参数
jQuery.param( obj, traditional )
默认traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架,但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化。