0

我正在尝试发布一些 JSON,我需要在其中包含输入字段中的一些值。我有两个带有用户名和密码 ID 的输入字段。

data = JSON.stringify({
  "jsonrpc": "2.0",
  "method": "POST",
  "params": {
    "params": {"username": $('#username').val(), "password":  $('#password').val()}
  }
});

当我对值进行硬编码时,我可以很好地发送它,问题是它不会从输入字段发送值。我究竟做错了什么?

我是这样发送的:

$.ajax({
  url:url,
  type:"POST",
  crossDomain: true,
  dataType: "json",
  data : data,
  headers: {
    'content-type': "application/json; charset=utf-8"
  },
  success: function(data){
        $("#result").append('<p>Token: ' + data.result.token + '</p>');
        $("#result").append('<p>Name: ' + data.result.Customer.Name.value + '</p>');
        $("#result").append('<p>ID: ' + data.result.Customer.ID + '</p>');
  },
  error: function(data, status, xhr) {
alert("Error");
  }

});

我尝试简化事情,所以我div在单击按钮时将值添加到 a 中。这工作得很好:

$("#login").click(function() {
  $('#test').append($('#username').val());
});

回答:正如大卫在评论中提到的,这是因为我在函数之外声明了数据变量。

4

3 回答 3

0

在原始问题中添加了答案。特别感谢 David Hedlund 帮助我朝着正确的方向前进。

于 2012-10-22T14:12:49.907 回答
0

改变:

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

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

你在同一时间声明了两次参数

于 2012-10-22T13:25:05.810 回答
0

也许你可以使用 dataType: "string"

于 2012-10-22T13:31:35.857 回答