当我尝试将一些数据发布到我的后端API服务时,我使用XMLHttpRequest
对象,但当我尝试使用ajax.send
发送数据时,它没有向服务器发送任何内容
Code snipper:
ajax = new XMLHttpRequest();
ajax.open("POST", "https://someapi.com",true);
ajax.send({
name: "Name",
phone: "123468375698563897569575863"
});
ajax.onreadystatechange = function(){
if(ajax.readyState==4){
JSONback = JSON.parse(ajax.response);
console.log(JSONback);
}
};
答案 0 :(得分:0)
您无法通过网络直接发送JS对象。
您需要先将其转换为字符串,就像您需要在获取它时解析它一样。
ajax = new XMLHttpRequest();
ajax.open("POST", "https://balbalbal.com", true);
ajax.send(
JSON.stringify({
name: "Name",
phone: "123468375698563897569575863"
})
);
ajax.onreadystatechange = function(){
if(ajax.readyState==4){
JSONback = JSON.parse(ajax.response);
console.log(JSONback);
}
};
服务器端最简单的PHP测试代码是:
<?php
echo file_get_contents('php://input');
?>
这是一个稍微更高级的示例,它将对其进行解码,添加新字段并将其发回:
<?php
$json = file_get_contents('php://input');
$object = json_decode($json);
$object->id = 123;
echo json_encode($object);
?>
答案 1 :(得分:0)
你需要:
这样:
var data = {
name: "Name",
phone: "123468375698563897569575863"
};
var json = JSON.stringify(data);
var ajax = new XMLHttpRequest();
ajax.open("POST", "https://balbalbal.com", true);
ajax.setRequestHeader("Content-Type", "application/json");
ajax.send(json);