Я очень новичок в поиске и не знаю Ajax.
Я пытаюсь отправить данные из файла JavaScript (node.js server) в файл PHP (сервер Apache).
Я отправляю 2 значения JSON через выборки JavaScript как "a" и "b".
мой код выглядит так.
fetch('http://localhost/react_task/react-webpack-boilerplate/php/api.php', {
method: 'post',
body: JSON.stringify({
a: 2,
b: 1
})
}) .then(function(response) {
if (response.status >= 200 && response.status < 300) {
return response.text()
}
throw new Error(response.statusText)
})
.then(function(response) {
console.log(response);
})
Может ли кто-нибудь сказать мне, как получить значение a и b в моем PHP файле? Я работаю с react.js
Поскольку вы передаете кадр JSON через запрос POST
, вам нужно будет расшифровать JSON, прежде чем пытаться прочитать данные в нем. Вы также должны использовать функции фильтров PHP для безопасного извлечения пользователя.
Вот пример кода (непроверенный):
<?php
$input = file_get_contents('php://input');
$input = json_decode($input);
$filtered_a = filter_var($input->a, FILTER_SANITIZE_NUMBER_INT);
$filtered_b = filter_var($input->b, FILTER_SANITIZE_NUMBER_INT);
echo "Safely received numeric inputs: a: {$filtered_a} b: {$filtered_b}";
?>
Более подробную информацию о том, как и почему использовать функции фильтра, можно найти на странице ввода документации.
Вы можете получить опубликованные значения с $_POST
параметра $_POST
в PHP.
Для тестирования вставьте эти строки в свой api.php
if($_POST["a"]=="2" && $_POST["b"]=="1")
{
echo "I posted 2 and 1";
}
Теперь response.text()
должен вернуться, I posted 2 and 1
.
$_POST
напрямую, очень плохая практика. Используйте функции фильтра PHP.
var_dump($_POST)
. если это пусто, то вам, вероятно, придется читать json изphp://input