如何在 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 中禁用屏幕截图