[英]JSON object in AJAX 'post' request
我正在尝试将json对象推送到服务器:
[
{
name: "A",
username: "A",
password: "123456",
email: "A@gmail.com"
},
{
name: "B",
username: "B1",
password: "123456",
email: "B1@example.com"
}
]
save.addEventListener("click", function () {
var dataJson = JSON.stringify(myNewData);
var request2 = new XMLHttpRequest();
request2.open("POST", "url", true);
request2.setRequestHeader("Content-type", "application/json;charset=UTF-8");
request2.send(dataJson);
request2.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
});
myNewData是一个JavaScript对象,我在发送数据之前先对其进行了分类。
这是发送数据的正确格式吗? 由于某种原因,似乎这样做时值未填充
如果API确实支持JSON参数,则应设置正确的Content-type:
:
request2.setRequestHeader("Content-type", "application/json");
如果确实需要URL编码的参数,则不能使用JSON.stringify()
。 您需要遍历这些对象,并将它们转换为name=value
形式的URL编码参数。 要发送数组,请在名称后使用[]
。
var dataArray = [];
myNewData.forEach(obj => Object.keys(obj).forEach(key => dataArray.push(encodeURIComponent(key + "[]") + "=" + encodeURIComponent(obj[key]))));
request2.send(dataArray.join("&");
例如,这是PHP期望的格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.