用JavaScript发布数组数据

J00*_*00S 4 javascript arrays ajax post http

我正在尝试将一些数据发布到http连接器,但无法弄清楚如何发布数组数据...

我的数据如下所示:

var data = [{ 
    key:'myKey',
    keyName:'myKeyName',
    value:'value',
    valueName:'valueName' 
}, { 
    key:'mySecondKey', 
    keyName:'mySecondKeyName',
    value:'secondValue',
    valueName:'secondValueName'
}, ...and so on ];
Run Code Online (Sandbox Code Playgroud)

我尝试通过Ajax将其发布为:

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

请求返回确定,但是当我查看请求数据时 undefined=value&undefined=secondValue

我该如何解决?我需要保存所有这些信息以进行配置

一个简单的帖子,只带有一些键和值,就像key=value&key2=value2魅力一样。

Woo*_*row 9

我假设您正在使用JSON负载发出POST请求。首先,您要确保有效载荷的格式正确为JSON,请使用:http : //pro.jsonlint.com/

其次,您可以使用JSON.stringify发送有效负载,然后将要设置contentType:

数据: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");
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)