console.log("data ", data); // returns an object in JSON format {propertyName: propertyValue}
dataString = JSON.stringify(dataString); //correctly stringified json
let response = await fetch('updateRecevingEntry.php',
{
method:'POST',
headers: {'Content-Type':'application/json'},
body: dataString
}).then(response=>response.json());
однако я получаю неопределенный индекс на стороне php.
, где php:
$matkey = $_POST['materialKey'];
возвращает
<b>Notice</b>: Undefined index: materialKey in <b>path/updateRecevingEntry.php</b> on line <b>3</b><br />
для всех данных ... ни один из них не перехватывается.
так почему _POST ['propertyName'] не перехватывает stringData из тела?
Я пробовал несколько вариантов, например отправка данных вместо строковых данных, связанных с заголовком, но я не могу понять, как отправить полезную нагрузку так, чтобы _POST ['propertyName'] ловило данные в теле.
Раньше я использовал $. ajax из jquery, и это работало: но я сейчас нахожусь в процессе рефакторинга.
API Fetch - новый для меня. где я иду не так Я также не хочу анализировать объект json на стороне php.
после прочтения одного из ответов, я заставил его работать в одном случае, но
let response = await fetch('updateRecevingEntry.php',
{
method:'POST',
headers: {'Content-Type':'application/json'},
body: sendData
}).then(response=>response.json());
и php
$postData = json_decode(file_get_contents("php://input"), true);
var_dump($postData);
просто возвращает большой жирный NULL.
Редактировать два: оказывается, что его просто нужно кодировать с помощью JSON .stringify (sendData) , С тех пор. Работает как положено.