$.post 发送请求时参数为空

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 对象时就会出现问题

以上只是我自己解决完这个问题之后的理解,如有错误,欢迎批评指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值