如何在 php 中使用 react-native 并获取返回数据始终为空

Posted

技术标签:

【中文标题】如何在 php 中使用 react-native 并获取返回数据始终为空【英文标题】:How can I use react-native with php with fetch return data is always null 【发布时间】:2015-09-08 03:32:04 【问题描述】:

我的回报总是空的。我似乎无法让它发挥作用。如何通过 fetch json 将 react-native 与 php 一起使用。有人可以帮忙吗?

PHP

$myArray = array();
$myArray['lat'] = $_POST['lat']; 
$myArray['lng'] = $_POST['lng'];
echo $_POST['lat'];

React-Native Fetch

fetch(url, 
  method: 'post',
  headers: 
    Accept: 'application/json',
    'Content-Type': 'application/json',
  ,
  body: JSON.stringify(
    lat: region.latitude,
    lng: region.longitude,
  ),
)
  .then((response) => response.json())
  .then((responseData) => 
    console.log(responseData);
  )
  .catch((error) => 
    console.warn(error);
  )
  .done();

【问题讨论】:

【参考方案1】:

如果不是 php 看不到数据,必须使用 file_get_contents('php://input')。

$json = json_decode(file_get_contents('php://input'), true);

$myArray = array();
$myArray['lat'] = $json['lat']; 
$myArray['lng'] = $json['lng'];
$myArray['status'] = 'success';
echo json_encode($myArray);

【讨论】:

我也发生过 .. 仍然想弄清楚为什么我在使用 'Content-Type': 'application/json' 时必须使用 file_get_contents('php://input'),你知道为什么会这样吗? 如果我生病了,请在此处添加答案并让您知道 当然。非常感谢! :) 之所以必须使用file_get_contents('php://input'),是因为它不是表单数据。它在那里传递一个原始的正文请求,因此 php 默认不知道将其解析为 JSON。您正在传递一个 JSON 正文,并且无论何时使用类似的东西,您都必须以这种方式解析它。

以上是关于如何在 php 中使用 react-native 并获取返回数据始终为空的主要内容,如果未能解决你的问题,请参考以下文章