jQuery 中 $.get()、$.post()、$.ajax() 与 $.getJSON() 的详细用法解析
jQuery 提供了多种用于发起 Ajax 请求的便捷方法,包括 $.get()、$.post()、$.ajax() 和 $.getJSON()。这些方法封装了原生 XMLHttpRequest,简化了异步通信的开发流程。
1. $.get(url, [data], [callback])
该方法用于发送 GET 请求。参数说明如下:
url:请求的目标地址。data(可选):要发送到服务器的数据,通常为键值对对象。callback(可选):请求成功后的回调函数,接收两个参数:服务器返回的数据(字符串)和状态文本。
$.get("fetch.php", { name: "Alice" }, function(response) {
$("#result").html(response); // response 为字符串
});
2. $.post(url, [data], [callback], [dataType])
用于发送 POST 请求,比 $.get() 多一个 dataType 参数,用于指定预期返回的数据类型(如 "json"、"xml"、"html" 等)。
$.post("submit.php", { user: "Bob", age: 25 }, function(data) {
$("#output").text(data.username); // 假设 data 是 JSON 对象
}, "json");
3. $.ajax(options)
这是 jQuery 中最灵活、功能最全面的 Ajax 方法,支持高度自定义配置。
$.ajax({
url: "api/data",
type: "POST",
data: { query: "search term" },
dataType: "json",
timeout: 5000,
success: function(result) {
console.log("Success:", result);
},
error: function(xhr, status, err) {
console.error("Error:", err);
}
});
关键配置项包括:url、type、data、dataType、success、error、timeout、beforeSend 等。
4. $.getJSON(url, [data], [callback])
专门用于获取 JSON 数据的快捷方法,内部自动设置 dataType: "json"。
$.getJSON("info.json", { id: 101 }, function(json) {
$("#info").html(json.title); // json 已是解析后的 JavaScript 对象
});
其他相关方法
.load(url, [data], [callback]):将远程 HTML 内容加载到指定元素中。$("#container").load("partial.html #section");$.getScript(url, [callback]):动态加载并执行 JavaScript 文件。$.getScript("utils.js", function() { console.log("Script loaded and executed."); });
表单数据处理辅助方法
$("form").serialize():将表单序列化为 URL 查询字符串(如a=1&b=2)。$("input").val():获取或设置表单控件的值。$("form").serializeArray():返回包含表单字段名和值的 JSON 数组。
Ajax 全局事件
jQuery 支持全局 Ajax 事件监听,可用于统一处理加载状态或错误提示:
$(document).ajaxStart(function() {
$("#loader").show();
}).ajaxStop(function() {
$("#loader").hide();
});
也可通过 $.ajaxSetup() 设置默认 Ajax 配置:
$.ajaxSetup({
timeout: 10000,
global: true
});