0

入力フィールドの値を含める必要がある 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 がコメントで述べたように、関数の外側でデータ変数を宣言したためです。

4

3 に答える 3

0

変化する:

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

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

一度に 2 回 params を宣言しています

于 2012-10-22T13:25:05.810 に答える
0

元の質問に回答を追加しました。特に、私を正しい方向に導いてくれた David Hedlund に感謝します。

于 2012-10-22T14:12:49.907 に答える
0

多分あなたは dataType: "string" を使うことができます

于 2012-10-22T13:31:35.857 に答える