ajax帖子只看到第一个参数

时间:2015-11-12 20:45:45

标签: jquery json ajax post

所以这是我的ajax帖子:

$("#defaultMigration").click(function(){

    $.ajax({
        type: "POST",
        url: "/Svn2GitService/services/svn2git/defaultMigration",
        contentType: 'application/json',
        data: JSON.stringify({ svnUrl : $("#svnUrl").val(),
                               gitUrl : $("#gitUrl").val(),
                               username : $("#username").val(),
                               password : $("#password").val()
            }),
        dataType: 'text',
        success: function(response){
            alert("Success!" + response);
        },
        failure: function(response) {
            alert("Error! " + response);
        }
    });
});

当我在我的服务中执行System.out.println时,我发现svnUrl param是唯一接收任何内容的param。实际上,它正在接收上述所有值。即svn url,git url,用户名和密码。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

出于好奇,请尝试以下方法。如果它有效,我将解释之后发生的事情。

我使用jQuery's $.param()函数序列化data对象。

  

<强> $。PARAM()

     

创建数组,普通对象或a的序列化表示   jQuery对象适用于URL查询字符串或Ajax请求。

var data = {
    svnUrl : $("#svnUrl").val(),
    gitUrl : $("#gitUrl").val(),
    username : $("#username").val(),
    password : $("#password").val()
}

data = $.param(data);

$.ajax({
    type: "POST",
    url: "/Svn2GitService/services/svn2git/defaultMigration",
    contentType: 'application/json',
    data: JSON.stringify(data),
    dataType: 'text',
    success: function(response){
        alert("Success!" + response);
    },
    failure: function(response) {
        alert("Error! " + response);
    }
});