前端jquery发送数据时ajax参数中存在数组(除了数组还有其它类型的参数),springmvc后台无法接收到数据的原因及解决办法。
一.若ajax要传递的参数中存在数组,如下所示:
var $data = { id:0001, name:"张三", friends:new Array("李四","王五","赵六") } $.ajax({ type:"POST", url:"/test", data:$data, success:function (result) { //处理 } });
发现springmvc后台无法接收到数据,这是因为ajax将数组进行了深度序列化处理,后台无法识别。所以我们需要阻止深度序列化处理,如下所示:
$.ajax({ type:"POST", url:"/test", data:$data, traditional:true,//阻止深度序列化 success:function (result) { //处理 }
});
然后前后端就可以正常传递数据了。