Здравствуйте. Я пытаюсь отправить переменные записей в мой API, но не могу получить данные записей в файле PHP.
Это мой реагирующий нативный код:
let data = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
'firstname': 'test',
}),
}
fetch(GLOBALS.API + '/registerApi.php?key=' + GLOBALS.KEY, data)
.then((response) => response.json())
.then((responseJson) => {
Alert.alert(
'Alert Title',
responseJson.output
)
})
.catch((error) => {
console.error(error);
});
Это возвращает меня пустым: []
$array = array(
"output" => json_encode($_POST)
);
$output = json_encode($array);
die($output);
Когда я использую $_REQUEST
это возвращает мне только key
получить параметр без firstname
один.
В PHP вам нужно использовать
$json = file_get_contents('php://input');
$obj = json_decode($json, TRUE)
JSON.stringify не работает для меня, попробуйте использовать FormData вместо этого, чтобы подготовить данные для отправки. Вот пример:
import FormData from 'FormData';
let formData = new FormData();
formData.append('firstname', 'test');
let data = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: formData
}
fetch(api_url, data)
.then(response => response.json())
.then(responseJson => console.log('response:', responseJson))
.catch(error => console.error(error));
Проблема в том, что JSON.stringify.
Вместо этого используйте FormData. Не нужно устанавливать, это не третье лицо. Меня устраивает.
import FormData from 'FormData';
var formData = new FormData();
formData.append('username', 'Andy');
...
{
...
body: formData
...
}