user.addUser = function(){
var f = $("#add_frm");//获取表单对象,对应html标签中的id
$.post("user/add",
// data:f.serialize(), //错误时候的代码
f.serialize() //正确时候的代码
,function(data){
$.messager.alter("",data,"info")
user._reload();
$("#dialog").dialog('close');
});
};
相关的代码如上
问题:后端接收到的参数为空(注:后端使用一个user对象来接)
解决办法:把 data:f.serialize();改为:f.serialize()
原因解释:
先举一个例子:比如我们前端发送了一个 name:"Alis" 的参数,然后我们后台通过 name,来接收,ok没问题;
但是现在后台是使用一个自定义的对象来接收数据的,使用 serialize() 方法之后会将表单中的数据序列化成一个字符串,这个时候如果使用 data:xxx 的话就会变成 “data:xxx:xxx,xxx:xxx”,那么后端在接收到这个字符串并进行实例化成 user 对象时就会出现问题
以上只是我自己解决完这个问题之后的理解,如有错误,欢迎批评指正!