@pimanov3

Как PHP получить получить JSON из JAVASCRIPT?

Передаю запрос следующим образом:
$(function () {
    $.getJSON("api/index.php", {
            "typе": "get_conferences"},
        function (response) {
            alert(JSON.stringify(response))
        });
})

Получаю:
<?php

header('Content-Type: application/json');

$json_input = json_decode(file_get_contents('php://input'));
file_put_contents(__DIR__ . '/text.txt', json_encode($json_input));

switch ($json_input->type) {
	case 'get_conferences':
		$json_output['test'] = 'check';
		echo json_encode($json_output);
		break;
	default:
		echo '{}';
		break;
}

Решил записывать приходящее содержимое в текстовый файл и на выходе получил null. Отправлял запрос с помощью reqbin и смог получить ответ.
63866e032b40d343540159.jpeg
Для отправки со стороны JS пробовал использовать сгенерированный этим же сервисом код, но результата это не дало.
var url = "/conference/api";

var xhr = new XMLHttpRequest();
xhr.open("POST", url);

xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");

xhr.onreadystatechange = function () {
   if (xhr.readyState === 4) {
      console.log(xhr.status);
      console.log(xhr.responseText);
   }};

var data = '{"type": "get_conferences"}';

xhr.send(data);
  • Вопрос задан
  • 275 просмотров
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Вообще все неправильно делаешь.

Отправляешь данные из браузера на сервер вот так:
(async function() {
    var result = await $.post('api/index.php', { raz: 'Привет, мир!' } );
    console.log('Ответ сервера:', result);
})();

Открой консоль CTRL + Shift + J, чтобы посмотреть ответ выведенный через console.log

На сервере все что ты отправил будет лежать внутри суперглобального массива $_POST

Можешь записать его в файл и посмотреть, что было внутри:
<?php

header('Content-Type: text/plain; charset=UTF-8');

$json = json_encode($_POST, JSON_UNESCAPED_UNICODE);

file_put_contents('POST.json', $json);

echo 'Данные получены и записаны в файл POST.json -> смотри его.';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы