根据前端数据格式选择对应接收方式:表单数据用$_POST,JSON需读取php://input并解析,通过Content-Type判断类型,注意CORS与PHP配置。
AJAX 请求发送的数据,PHP 可以通过不同的方式获取,具体取决于前端发送数据的格式(如 form-data、JSON 等)。以下是常见的处理方法。
前端示例(jQuery):
$.ajax({
url: 'handle.php',
type: 'POST',
data: { name: '张三', age: 25 },
success: function(res) {
console.log(res);
}
});
PHP 接收代码(handle.php):
$name = $_POST['name'] ?? '';
$age = $_POST['age'] ?? '';
echo "姓名:$name,年龄:$age";
前端示例(原生 Fetch):
fetch('handle.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: '李四', score: 95 })
})
.then(res => res.text())
.then(data => console.log(data));
PHP 接收代码:
// 读取原始请求体
$json = file_get_contents('php://input');
$data = json_decode($json, true); // 转为关联数组
if (json_last_error() === JSON_ERROR_NONE) {
$name = $data['name'] ?? '';
$score = $data['score'] ?? '';
echo "用户:$name,得分:$score";
} else {
echo '无效的 JSON 数据';
}
示例代码:
$contentType = $_SERVER['CONTENT_TYPE'] ?? '';
if (strpos($contentType, 'application/json') !== false) {
$json = file_get_contents('php://in
put');
$data = json_decode($json, true);
} else {
$data = $_POST;
}
// 统一处理 $data 数组
$name = $data['name'] ?? '未知';
echo "欢迎:$name";
基本上就这些。根据前端传参方式选择对应处理逻辑,关键是搞清楚数据的编码格式和传输类型。不复杂但容易忽略细节。