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