入力フィールドの値を含める必要がある JSON を POST しようとしています。ユーザー名とパスワードの ID を持つ 2 つの入力フィールドがあります。
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());
});
回答: David がコメントで述べたように、関数の外側でデータ変数を宣言したためです。