前端Ajax使用Raw Json 或 Request Payload方式提交POST请求时,服务端使用常规的 $_POST 获取不到请求的参数。可以通过 $GLOBALS['HTTP_RAW_POST_DATA'] 获取请求参数并合并到$_POST数组中。
服务端代码:
<?php
var_dump($_POST);
?>
前端请求(Postman模拟):
服务端修改后代码:
<?php
// 兼容 Raw Json 或 Request Payload 的传参方式
$raw = $GLOBALS['HTTP_RAW_POST_DATA'];
$raw = json_decode($raw, true);
if($raw != null && is_array($raw) == true)
{
$_POST = array_merge($_POST, $raw);
}
var_dump($_POST);
exit();
?>
前端请求(Postman模拟):