2 qq 27875511 qq_27875511 于 2016.01.26 15:02 提问

JSON数据传输后台拿不到,求大神指点

后台代码
@RequestMapping(value="adduser")
@ResponseBody
public void adduser(String user){
System.out.println("添加");
User users=JsonUtil.deserialize(user, User.class);
System.out.println(users+"===");
}

前台代码
function register(){
alert($('.username').val()+"---");
var user={"username":$('.username').val(),"password":$('.password').val()};
alert(user.username);
$.ajax({
cache: false,
type: "POST",
dataType:'json',
url:"../../user/adduser", //把表单数据发送到userController
contentType: "application/json; charset=utf-8",
data:user, //要发送的是ajaxFrm表单中的数据
async: false,
success:function(msg){

            }

        });
        alert("注册")
    }

7个回答

showbo
showbo   Ds   Rxr 2016.01.26 15:29

    $.ajax({
        cache: false,
        type: "POST",
        dataType:'json',
        url:"../../user/adduser", //把表单数据发送到userController
        contentType: "application/json; charset=utf-8",
        data:user, //要发送的是ajaxFrm表单中的数据
        async: false,
        success:function(msg){

        }, error: function (xhr) {
            alert(xhr.responseText)///看输出什么错误
        }

    });
rui888
rui888   Ds   Rxr 2016.01.26 15:14

外面价格单引号看看

{"username":$('.username').val(),"password":$('.password').val()}

jianggujin
jianggujin   2016.01.26 15:14

adduser方法形参换成User,ajax不设置contentType直接提交试试

Iamxiaoxiong
Iamxiaoxiong   2016.01.26 15:23

修改ajax

 data:{
    user: user
}
Iamxiaoxiong
Iamxiaoxiong   2016.01.26 15:25
 $.ajax({
            url: ,
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify({
                username: xxxxx,
                password: xxxxxx 
            }),
            success: function (response) {

            },
            error: function (xhr, text, error) {
            }
        });
a8761087
a8761087   Rxr 2016.01.26 16:03
 {"username":$('.username').val(),"password":$('.password').val()};这行不对。json格式值也要加引号,改成
 {"username":"\""+$('.username').val()+"\"","password":"\""+$('.password').val()+"\""};
u012000209
u012000209   2016.01.26 17:18

你这样肯定是请求不到数据的,前台发过去的是{"username":$('.username').val(),"password":$('.password').val()};,后台却这样:public void adduser(String user)。应该是public void adduser(String username,string password);而且{"username":$('.username').val(),"password":$('.password').val()};中username和password是不需要双引号的。再有@RequestMapping(value="adduser")应该是@RequestMapping(value="/adduser"),
如果你直接在USER对象中映射JSON中的属性,应该写成public void adduser(@RequestBody User user)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!