当前位置:首页 > 技术 > 正文内容

jQuery 中 $.get()、$.post()、$.ajax() 与 $.getJSON() 的详细用法解析

访客 技术 2026年8月15日 1

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);
    }
});

关键配置项包括:urltypedatadataTypesuccesserrortimeoutbeforeSend 等。

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
});

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。