get请求→file_get_contents('php:// input')返回null. post请求→数据已成功检索和解码。
Getpost
<?php
echo strtoupper($_SERVER['REQUEST_METHOD']) . "\n\n\n";
$data = json_decode(file_get_contents('php://input'), true);
var_dump($data);
?>
sissue: 之前迁移:该脚本可以通过get request进行效果。 迁移后:php://使用get时输入返回null。 post,put,补丁正常。
可能的原因和问题:Cloudlinux v9.5.0中的服务器配置更改,可以防止获得主体的请求?
有解决方法可以允许获取请求以包含JSON身体数据吗?
将感谢有关此问题的任何见解或解决方案。预先感谢!
检查mod_security规则,以查看他们是否正在从获取请求中剥离身体。 确保PHP设置允许从php://input读取输入数据。 cagefs和live的配置正确。
<?php
echo strtoupper($_SERVER['REQUEST_METHOD']) . "\n\n\n";
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$data = $_GET;
} else {
$data = json_decode(file_get_contents('php://input'), true);
}
var_dump($data);
?>