通过获取来检索值(将值从javascript发送到php文件)

时间:2016-09-08 13:21:14

标签: javascript php ajax reactjs fetch

我非常擅长取得并且不了解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

2 个答案:

答案 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