获取 JSON React to PHP [重复]
Posted
技术标签:
【中文标题】获取 JSON React to PHP [重复]【英文标题】:Fetch JSON React to PHP [duplicate] 【发布时间】:2021-07-08 05:39:14 【问题描述】:我在 React 中创建了一个按钮,允许我使用 Fetch 将数据存储在 JSON 中,并将其发送到本地 php 服务器。
我收到来自我的 PHP 文件的调用,但我无法获取数据。
这是反应:
const handleSubmit = (e) =>
e.preventDefault();
const requestOptions =
method: 'POST',
mode: 'no-cors',
headers: 'Content-Type': 'application/json' ,
body: JSON.stringify( title: 'React POST Request Example' )
;
fetch('http://localhost:8000/index.php', requestOptions)
.then(response => response.json())
.then(data => this.setState( postId: data.id ));
;
这里的 PHP(我只尝试打印值)变量总是空的
header('Access-Control-Allow-Origin: *');
if ($_SERVER["REQUEST_METHOD"] == "POST")
error_log(print_r($_REQUEST, true));
error_log(print_r($_SERVER, true));
error_log(print_r($_POST['title'], true));
$var = $POST['title'];
error_log(print_r($var, true));
return;
if ($_REQUEST)
error_log(print_r("omg", true));
return;
if (isset($_POST))
echo print_r($_POST,true);
return 0;
我在发送数据时 React 中也出现以下错误。
Uncaught (in promise) SyntaxError: Unexpected end of input 在:54:23
【问题讨论】:
【参考方案1】:因为您没有按照response.json()
的预期返回任何 JSON。
您可以使用file_get_contents('php://input')
获取您的传入数据。
// prepare data to return
$dataToReturn = [];
// populate the data as you need
$dataToReturn = json_decode(file_get_contents('php://input'));
// Output the JSON string with appropriate header
header('Content-Type: application/json');
echo json_encode($dataToReturn);
exit(0);
【讨论】:
您好,谢谢您的回答,我还是遇到了同样的问题。 $DataToReturn 仍然为空 PHP 的输出(在您的网络控制台中)是什么? 我复制您的代码示例并添加“error_log(print_r($dataToReturn, true));”要获取数据,它会返回一个空数组 你检查file_get_contents('php://input')
数据了吗?您将拥有 JSON 编码的数据。
完美!有用!非常感谢以上是关于获取 JSON React to PHP [重复]的主要内容,如果未能解决你的问题,请参考以下文章
REACT 中的 fetch() 失败,没有 statusText 也没有 json 正文。如何获取有关错误的额外信息?