我正在尝试将一些数据发布到 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");
}
});
请求返回正常,但是当我查看请求数据时它发布 undefined=value&undefined=secondValue
我该如何解决这个问题?我需要保存所有这些信息以进行配置
一个只有一些键和值的简单帖子,如 key=value&key2=value2
就像一个魅力。
最佳答案
我假设您正在使用 JSON 负载发出 POST 请求。首先,您要确保您的有效负载的 JSON 格式正确,请使用:http://pro.jsonlint.com/
其次,您可以使用 JSON.stringify 发送有效载荷,您需要设置 contentType:
数据:JSON.stringify(数据), 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>
关于javascript - 使用 JavaScript 发布数组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44003115/