我非常擅长取得并且不了解Ajax。
我试图将数据从JavaScript文件(node.js服务器)发送到PHP文件(Apache服务器)。
我通过JavaScript提取发送2个JSON值为" 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);
})
有人可以告诉我如何在PHP文件中检索a和b的值吗? 我正在使用react.js
答案 0 :(得分:-1)
您可以通过PHP中的$_POST
参数获取发布值。
要进行测试,请将这些行粘贴到api.php
中if($_POST["a"]=="2" && $_POST["b"]=="1")
{
echo "I posted 2 and 1";
}
现在response.text()
应该返回I posted 2 and 1
。
答案 1 :(得分:-1)
因为您通过POST
请求传递了JSON blob,所以在尝试读取其中的数据之前,您需要解码JSON。您还应该使用PHP的Filter Functions来安全地检索用户输入。
以下是一些示例代码(未经测试):
<?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}";
?>
有关使用过滤器功能的方式和原因的更多详细信息,请参阅文档的introduction page。