web-dev-qa-db-ja.com

POST JavaScriptを使用した配列データ

一部のデータをhttpコネクタに投稿しようとしていますが、配列データを投稿する方法がわかりません...

私のデータはそのように見えます:

var data = [{ 
    key:'myKey',
    keyName:'myKeyName',
    value:'value',
    valueName:'valueName' 
}, { 
    key:'mySecondKey', 
    keyName:'mySecondKeyName',
    value:'secondValue',
    valueName:'secondValueName'
}, ...and so on ];

私は次のようにAjax経由で投稿しようとします:

$.ajax({
    type:   "POST",
    url:    url,
    data:   data,
    error:  function(){
        alert("Error");
    },
    success: function(){
        alert("OK");
    }
});

リクエストはOKを返しますが、リクエストデータを見るとundefined=value&undefined=secondValueがポストされます

どうすればこれを解決できますか?構成のためにこれらすべての情報を保存する必要があります

key=value&key2=value2のようないくつかのキーと値のみを含む単純な投稿は、魅力のように機能します。

5
J000S

POST JSONペイロードを使用したリクエストを作成していることを前提としています。最初に、ペイロードが正しくフォーマットされたJSONであることを確認するには、次のように使用します http:// pro .jsonlint.com /

次に、JSON.stringifyを使用してペイロードを送信し、contentTypeを設定します。

data:JSON.stringify(data)、contentType: "application/json; charset = utf-8"

これを実行してChromeのDev Toolsのネットワークタブを見ると、エラーになりますが、少なくともサーバーに送信するようにフォーマットされたペイロードが表示されます。 http://prntscr.com/f8hf6s

var data = [{
    "key": "myKey",
    "keyName": "myKeyName",
    "value": "value",
    "valueName": "valueName"
  },
  {
    "key": "mySecondKey",
    "keyName": "mySecondKeyName",
    "value": "secondValue",
    "valueName": "secondValueName"
  }
];

var url = "http://swapi.co/api/";

$.ajax({
  type: "POST",
  url: url,
  data: JSON.stringify(data),
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  error: function() {
    alert("Error");
  },
  success: function() {
    alert("OK");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
10
Woodrow