php - php://input 没有数据 apache2
问题描述
我为一个应用程序做了一个 api rest,但我现在遇到一个问题,参数中传递的信息没有到达,我不知道它来自哪里
我的 php 程序是这样的:
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-
Requested-With");
// make sure data is not empty
echo file_get_contents("php://input");
$data = json_decode(file_get_contents("php://input"));
echo $data->user;
echo $data->password;
if(empty($data->user) || empty($data->password)){
http_response_code(400);
echo json_encode(array("message" => "Error data not found."));
}
?>
未找到返回错误数据,仅此而已
我的 api rest 位于一个服务器中,该服务器还包含一个带有修改过的路由的 react 网站,以便它可以工作
<Directory /var/www/html/api/>
Options FollowSymLinks
AllowOverride None
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_URI} !(API) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
</Directory>
我没有做任何其他更改,谢谢您的帮助
编辑:我像这样添加了三个变量显示
var_dump ($ data);
var_dump ($ data-> user);
var_dump ($ data-> password);
这表明您可以通过此链接自行尝试的所有变量为空 http://dev.craphael.fr/api/user.php?user=Osarel&password=test
编辑2:我添加了
var_dump(file_get_contents("php://input"));
和这个显示
string(0) ""
解决方案
推荐阅读
- python - 如何处理混合大小写正则表达式?
- docker - 如何确保 docker 确认优雅退出?
- python-3.x - 如何编码以重新排列列中的所有文本
- python-3.x - 线程安全删除python中的目录
- javascript - 如何用Javascript来console.log增量变量如a1,a2,a3,a4?
- sharepoint - 如何使用上次提交的表单中的数据填充新表单上的 PowerApps 数据卡值
- android - MediaCodec 使用 inputSurface 编码视频但丢帧
- xpath - 如何获取所有子节点的文本
- python - 每行不满足条件的值的计数
- r - 在使用多个条件的情况下使用 dplyr 和 ifelse 创建新变量