jQuery get()/post() 方法
$.get() 与 $.post() 是 jQuery 提供的两个全局 AJAX 快捷方法,分别对应 HTTP 的 GET 与 POST 请求。它们以服务器返回的数据内容为中心(文本、HTML 或 JSON 皆可),非常适合调用接口、提交表单、异步校验等日常开发。
$.get() 语法与示例
语法:$.get(url, data, callback)。data 会拼接到 URL 查询串中,适合读取操作:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://example.com/jquery.min.js"></script>
<!-- 说明:https://example.com 为占位域名,实际使用请替换为本地 jquery.min.js 或官方 CDN -->
</head>
<body>
<button id="btn">获取城市信息</button>
<p id="box"></p>
<script>
$(function () {
$("#btn").click(function () {
// data 会拼成查询串:time.php?city=beijing
$.get("time.php", { city: "beijing" }, function (data, status) {
$("#box").text(data); // 效果:p 中显示服务器返回的文本
console.log("请求状态:" + status); // 输出:请求状态:success
});
});
});
</script>
</body>
</html>
$.post() 语法与示例
语法与 $.get() 几乎一致,区别是 data 通过请求体提交,不暴露在地址栏,适合登录、下单等写操作:
$.post("login.php", { user: "张三", pass: "123456" }, function (data) {
alert(data); // 效果:弹出服务器返回的结果,如"登录成功"
});
get 与 post 的区别
| 对比项 | GET | POST |
|---|---|---|
| 数据位置 | URL 查询串 | 请求体 |
| 可见性 | 地址栏可见 | 不可见 |
| 长度限制 | 有(通常几 KB) | 基本无限制 |
| 缓存 | 可能被浏览器缓存 | 默认不缓存 |
| 适用场景 | 查询、读取 | 提交、写入 |
服务器端配合示例
快捷方法只负责"发送与接收",真正的处理在服务器端。例如上面的 time.php 可以这样写:
<?php
header("Content-Type: text/html; charset=utf-8");
$city = isset($_GET["city"]) ? $_GET["city"] : "未知";
echo "北京时间:" . date("H:i:s") . "," . $city . "欢迎你";
?>
运行结果:页面上显示"北京时间:14:30:22,beijing欢迎你"之类的文本,再被 $.get 的回调取走。
回调参数说明
回调固定接收三个参数:data(服务器返回的数据,JSON 会被自动解析成对象)、status(success/error 等状态字符串)、xhr(请求对象,可读 status、responseText 等)。
小结:$.get() 读数据、$.post() 写数据,参数结构几乎相同,是日常调用接口使用频率最高的两个方法。想在一个方法里精细控制请求头、超时等,就要用后面要学的 $.ajax()。