Я хочу отправить данные JSON (в данном случае это временная метка клиента) на мой сервер.Однако мой код, кажется, не работает так, как я ожидал.
Моя идея заключается в использовании fetch для отправки FormData (которая содержит входные данные с JSON в качестве значения) в PHP.На стороне сервера PHP позаботится о форме с $_POST
и вернет мне строку JSON.
Я использую бесплатный хост-сервис с PHP 7.0 для тестирования.
Весь приведенный ниже код находится в одном и том же файле (404.php):
var now = new Date();
var pkg = JSON.stringify({
ts: now.getTime(),
tz: now.getTimezoneOffset() / -60
})
var form = new FormData();
form.set('json', pkg);
console.log(form.has('json')) // true
console.log(form.values().next()) // return and obj contain JSON string
fetch('/404.php', {
method: 'POST',
body: form
});
$json = null;
if(isset($_POST['json'])) $json = json_decode($_POST['json']);
var_dump($_POST); //Result: array(0) { }
Как видите, выходные данные var_dump представляют собой пустой массив.Но то, что я ожидаю увидеть, это вывод со строкой JSON.
Я пробовал другой способ, а именно этот fetch-api-json-php , но он также бесполезен,Все ресурсы, которые я нашел в Интернете, обычно о классическом AJAX, а не о API извлечения.И большинство из них только для клиентской стороны, я не могу найти ничего для PHP / серверной стороны.