我正在尝试发布一些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
。这很好用:
$("#login").click(function() {
$('#test').append($('#username').val());
});
答案:正如大卫在评论中提到的,这是因为我在函数外宣布了数据变量。
答案 0 :(得分:0)
变化:
"params": {
"params": {"username": $('#username').val(), "password": $('#password').val()}
}
在
"params": {"username": $('#username').val(), "password": $('#password').val()}
你现在两次宣布params
答案 1 :(得分:0)
也许你可以使用dataType:“string”
答案 2 :(得分:0)
在原始问题中添加了答案。特别要感谢David Hedlund帮助我朝着正确的方向发展。