Я отправляю данные json на сервер, используя ajax и чистый javascript.Как получить индекс $_POST
, который будет отображать содержимое json на странице php?
ajax отправляет запрос как key=value
на сервер, тем временем, используя тип контента 'application / json', я получил пример по ссылке ниже, поскольку данные json (stringfy) были отправлены напрямуюбез key=value
.
Отправка JSON на сервер и получение JSON в ответ, без JQuery
На стороне php для пост-запроса, приведенный ниже пример былдано.
$v = json_decode(stripslashes(file_get_contents("php://input")))
Теперь я не понимаю, что здесь означает php://input
, поскольку данные json были отправлены на ту же страницу.Я попытался file_get_contents('https://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
, но ничего не вернулось.Я попытался использовать var_dump($_POST)
для просмотра всего содержимого в виде массива, но все, что я получил, это array(0){}
.Так как же мне на самом деле перехватить запрос ajax (json), который я отправил на страницу php?Вот пример кода:
var data = {
name : "john",
Friend : "Jonny",
Bestie : "johnson",
neighbour: "john doe"
};
json = JSON.stringify(data);
var ajax = new XMLHttpRequest(), url = '../handler.php';
ajax.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
};
};
ajax.open('POST', url, true);
ajax.setRequestHeader('content-type', 'application/json');
ajax.send(json);
PHP
header("Content-Type: application/json");
var_dump($_POST);
file_get_contents('https://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
Я ожидал, что строка json будет присутствовать в переменной $ _POST и будет доступна по индексу после декодирования строки json, но я получаю array(0){}
, null
или вообще ничего не отображается