如何在 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 并获取返回数据始终为空的主要内容,如果未能解决你的问题,请参考以下文章

React-native:如何在 React-native 中使用(和翻译)带有 jsx 的 typescript .tsx 文件?

如何在 react-native 中使用 FormData?

如何使用 React-Native 在 iOS 中禁用屏幕截图

如何在 react-native 中使用 zIndex

如何使用 redux 让根组件在 react-native 中重新渲染(开源项目)

如何在组件 React / React-native 的单独页面中使用动态 graphql(字符串)