技术文摘
jQuery $.post()和Fetch发POST请求时,PHP后端怎样正确接收数据
2025-01-09 00:13:59 小编
在前端开发中,使用 jQuery 的 $.post() 方法或 Fetch API 发送 POST 请求是常见的操作,而后端如何正确接收这些数据则至关重要。本文将详细介绍在 PHP 后端中如何准确接收这两种方式发送的数据。
首先来看 jQuery 的 $.post() 方法。当使用该方法发送 POST 请求时,数据通常以键值对的形式传递。在 PHP 后端,可以通过 $_POST 超全局变量来接收数据。例如,前端代码如下:
$.post('your-php-script.php', { name: 'John', age: 30 }, function(response) {
console.log(response);
});
在 PHP 后端,your-php-script.php 文件中可以这样接收数据:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $_POST['name'];
$age = $_POST['age'];
echo "Name: ". $name. ", Age: ". $age;
}
?>
这里,通过判断请求方法是否为 POST,确保只在接收到 POST 请求时进行数据处理。然后从 $_POST 中提取相应的键值对数据。
再说说 Fetch API。Fetch 发送 POST 请求时稍微复杂一些,需要构建请求体。前端代码示例如下:
const data = { name: 'Jane', age: 25 };
fetch('your-php-script.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.text())
.then(data => console.log(data));
在这种情况下,由于数据是以 JSON 格式发送的,PHP 后端需要特殊处理。可以通过 php://input 来读取原始输入流,然后将其解析为 PHP 数组或对象。示例代码如下:
<?php
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE);
if (json_last_error()!== JSON_ERROR_NONE) {
die("JSON 解析错误");
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $input['name'];
$age = $input['age'];
echo "Name: ". $name. ", Age: ". $age;
}
?>
通过这种方式,PHP 后端就能正确接收 Fetch 发送的 POST 数据。
无论是 jQuery 的 $.post() 还是 Fetch API 发送 POST 请求,PHP 后端都有相应的方法来准确接收数据。掌握这些方法,能够让前后端数据交互更加顺畅,提升开发效率。
- MySQL 8.0 下 union 查询结果排序与 union 顺序不符的解决办法
- 物理服务器平滑升级且避免服务中断的实现方法
- MySQL 重装后原密码无效无法登录如何解决
- MySQL 子查询中 any_value 与 WHERE IN 失效的缘由是什么
- Elasticsearch Join 类型:文章与评论是否应存于同一索引
- 怎样把子查询参数与外层 SQL 语句字段作比较
- MySQL 不停服升级配置的实现方法
- 查询小于等于指定月份的最佳方式是什么
- SQL 查询问题:怎样从两张表获取唯一结果
- 多对多关联下,怎样查询是否有包含特定水果组合的篮子
- SQL 中 UPDATE IGNORE 语句怎样忽略更新错误
- MySQL 存储过程:原理及适用应用场景
- 为何回表查询即便获取所需记录主键仍是随机IO
- MySQL 中 any_value 子查询致使 where in 失效的缘由是什么
- 用 Express、TypeScript、TypeORM 与 MySQL 构建项目的起始指南