Принеси в реакцию родной не отправлять пост

Здравствуйте. Я пытаюсь отправить переменные записей в мой 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 один.

2

Решение

В PHP вам нужно использовать

$json = file_get_contents('php://input');
$obj = json_decode($json, TRUE)
4

Другие решения

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));
6

Проблема в том, что JSON.stringify.
Вместо этого используйте FormData. Не нужно устанавливать, это не третье лицо. Меня устраивает.

import FormData from 'FormData';

var formData = new FormData();

formData.append('username', 'Andy');

...

{
...
body: formData
...
}
1
По вопросам рекламы [email protected]