/ / XHR Повідомлення нічого на сервер - javascript, json, ajax

XHR не публікує нічого на сервер - javascript, json, ajax

Коли я намагаюся опублікувати деякі дані в моєму сервісному сервісі API, який я використовую XMLHttpRequest об'єкта, але коли я намагаюся надсилати дані ajax.send він нічого не посилав на сервер

Снайпер коду:

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 для відповіді № 1

Тобі потрібно:

  1. Скажіть, що ви надсилаєте JSON
  2. Перетворіть вашу структуру даних JavaScript в JSON

Такі:

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);

0 для відповіді № 2

Ви не можете безпосередньо надіслати об'єкт 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);
?>