使用javascript POST数组数据

时间:2017-05-16 13:38:15

标签: javascript arrays ajax http post

我试图将一些数据发布到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的简单帖子就像魅力一样。

1 个答案:

答案 0 :(得分:5)

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

其次,您可以使用JSON.stringify发送有效负载,并且您需要设置contentType:

数据:JSON.stringify(数据), contentType:" application / json;字符集= 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>
&#13;
&#13;
&#13;