目录

一、核心方法:$.ajax()

二、简化方法(常用场景)

1. $.get():快速发送 GET 请求(获取数据)

2. $.post():快速发送 POST 请求(提交数据)

3. $.getJSON():专门获取 JSON 数据

三、关键概念解析

四、实战案例:加载并显示数据

五、注意事项


jQuery 的 AJAX(Asynchronous JavaScript and XML)是一套简化异步网络请求的 API,它封装了原生 JavaScript 的 XMLHttpRequest,让开发者能更轻松地实现页面与服务器的无刷新数据交互(比如加载数据、提交表单、获取动态内容等)。

相比原生 JS,jQuery 的 AJAX 语法更简洁,无需处理复杂的兼容性问题,是前端开发中与后端通信的常用工具。

一、核心方法:$.ajax()

$.ajax() 是 jQuery AJAX 的基础方法,支持几乎所有 AJAX 配置,语法如下:

javascript

$.ajax({url: "请求地址",        // 必需,后端接口地址(如 "/api/data" 或 "data.json")type: "GET",           // 可选,请求方式(GET/POST/PUT/DELETE 等),默认 GETdata: {                // 可选,发送到服务器的数据(对象形式)username: "张三",age: 20},dataType: "json",      // 可选,预期服务器返回的数据类型(json/text/html/xml等)timeout: 5000,         // 可选,请求超时时间(毫秒),超过则触发错误beforeSend: function(xhr) {// 可选,发送请求前执行(如添加请求头、显示加载动画)console.log("准备发送请求...");},success: function(response) {// 必需,请求成功时执行(response 是服务器返回的数据)console.log("请求成功:", response);},error: function(xhr, status, error) {// 可选,请求失败时执行(如网络错误、服务器错误)console.log("请求失败:", status, error);},complete: function(xhr, status) {// 可选,请求完成后执行(无论成功或失败,如隐藏加载动画)console.log("请求结束");}
});

二、简化方法(常用场景)

为了简化常见操作,jQuery 提供了几个快捷方法:

1. $.get():快速发送 GET 请求(获取数据)

适用于从服务器获取数据(如加载列表、详情等),语法:

javascript

// 语法:$.get(请求地址, [发送的数据], 成功回调函数, [预期数据类型])
$.get("https://api.example.com/users", { page: 1 }, function(data) {// 成功获取数据后执行console.log("用户列表:", data);
}, "json"); // 预期返回 JSON 格式
2. $.post():快速发送 POST 请求(提交数据)

适用于向服务器提交数据(如表单提交、注册信息等),语法:

javascript

// 语法:$.post(请求地址, [发送的数据], 成功回调函数, [预期数据类型])
$.post("/api/register", {username: "小明",password: "123456"
}, function(response) {console.log("注册结果:", response);
}, "json");
3. $.getJSON():专门获取 JSON 数据

简化版的 $.get(),自动指定 dataType: "json",适合加载 JSON 格式数据:

javascript

// 加载本地 JSON 文件(模拟后端数据)
$.getJSON("data/users.json", function(users) {// 直接使用 JSON 数据(无需解析)users.forEach(user => {console.log(user.name);});
});

三、关键概念解析

  1. “异步” 的含义
    发送请求后,页面不会卡住等待服务器响应,而是继续执行其他代码,直到服务器返回数据后,再通过 success 回调处理结果。这避免了页面刷新或卡顿,提升用户体验。

  2. 数据传递格式

    • 发送数据:data 参数支持对象(自动转为 key=value 格式)或字符串(如 "name=张三&age=20")。
    • 接收数据:常用 JSON 格式(轻量、易解析),dataType: "json" 会自动将返回的字符串转为 JS 对象。
  3. 跨域问题
    默认情况下,AJAX 只能请求同域名下的接口(浏览器安全限制)。若需请求其他域名,需后端配置 CORS(跨域资源共享) 允许跨域,否则会触发错误。

四、实战案例:加载并显示数据

假设后端提供一个获取文章列表的接口 "/api/articles",返回 JSON 数据:

json

{"success": true,"data": [{ "id": 1, "title": "jQuery 入门" },{ "id": 2, "title": "AJAX 详解" }]
}

用 jQuery 加载并显示到页面:

html

预览

<ul id="articleList"></ul>
<button id="loadBtn">加载文章</button><script>$("#loadBtn").click(function() {// 点击按钮后发送请求$.get("/api/articles", function(res) {if (res.success) {// 清空列表$("#articleList").empty();// 遍历数据,添加到页面res.data.forEach(article => {$("#articleList").append(`<li>${article.title}</li>`);});} else {alert("加载失败");}}).error(function() {alert("网络错误,请重试");});});
</script>

五、注意事项

  • 避免滥用同步请求$.ajax() 中设置 async: false 可开启同步请求,但会阻塞页面,影响体验,不推荐使用。
  • 处理加载状态:在 beforeSend 中显示 “加载中” 提示,complete 中隐藏,提升用户体验。
  • 数据验证:服务器返回的数据需先验证(如 res.success),再进行后续处理,避免报错。

通过 jQuery AJAX,你可以轻松实现动态加载内容、表单无刷新提交等功能,是构建现代交互式网页的核心技术之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93123.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93123.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93123.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win10系统Ruby+Devkit3.4.5-1安装

Win10系统RubyDevkit3.4.5-1安装安装步骤软件工具安装Ruby安装gem mysql2处理libmysql.dll验证mysql2安装步骤 软件工具 mysql-connector-c-6.1.11-winx64.zip rubyinstaller-devkit-3.4.5-1-x64.exe 安装Ruby 执行rubyinstaller-devkit-3.4.5-1-x64.exe&#xff0c;期间可…

社交工程:洞穿人心防线的无形之矛

在网络安全领域&#xff0c;一道无形的裂痕正在迅速蔓延。它不是复杂的零日漏洞&#xff0c;也不是精妙的恶意代码&#xff0c;而是利用人性弱点进行攻击的古老技艺——社交工程。当全球网络安全支出突破千亿美元大关&#xff0c;防火墙筑得越来越高&#xff0c;加密算法越来越…

Go 并发控制利器 ants 使用文档

https://github.com/panjf2000/ants1.1 什么是 ants ants 是一个高性能的 Go 语言 goroutine 池&#xff0c;它能复用已完成任务的 goroutine&#xff0c;避免频繁创建和销毁 goroutine&#xff0c;节省 CPU 与内存开销&#xff0c;并且能限制并发数量防止资源被耗尽。 1.2 安装…

Day57--图论--53. 寻宝(卡码网)

Day57–图论–53. 寻宝&#xff08;卡码网&#xff09; 今天学习&#xff1a;最小生成树。有两种算法&#xff08;Prim和Kruskal&#xff09;和一道例题。 prim 算法是维护节点的集合&#xff0c;而 Kruskal 是维护边的集合。 最小生成树&#xff1a;所有节点的最小连通子图&am…

解决海洋探测数据同步网络问题的新思路——基于智能组网技术的探索

随着海洋探测技术的不断发展&#xff0c;数据同步网络的稳定性和低延迟需求变得愈发重要。海洋探测数据来自多个分布式采集点&#xff0c;这些点需要高效的组网方式来实现实时数据传输。然而&#xff0c;由于海洋环境的特殊性&#xff08;如复杂的网络拓扑、高湿度和极端温度&a…

设计模式笔记_行为型_责任链模式

1. 责任链模式介绍责任链模式&#xff08;Chain of Responsibility&#xff09;是一种行为设计模式&#xff0c;它允许将多个处理器&#xff08;处理对象&#xff09;连接成一条链&#xff0c;并沿着这条链传递请求&#xff0c;直到有一个处理器处理它为止。职责链模式的主要目…

pygame的帧处理中,涉及键盘的有`pg.event.get()`与`pg.key.get_pressed()` ,二者有什么区别与联系?

一、pg.event.get() 返回的是一组事件 pg.event.get() 返回的是一组事件&#xff08;一个包含多个事件对象的列表&#xff09;。这是因为在游戏的“一帧”时间内&#xff08;通常1/60秒左右&#xff09;&#xff0c;用户可能会触发多个事件&#xff08;比如同时按下多个键、快速…

TF - IDF算法面试与工作常见问题全解析

在自然语言处理领域&#xff0c;TF - IDF算法是一个基础且重要的概念。无论是在求职面试还是在实际工作中&#xff0c;都经常会遇到与TF - IDF相关的问题。以下是一些常见的问题及其详细解答&#xff1a; 一、基本概念类问题 1. 什么是TF - IDF算法&#xff1f; TF - IDF&#…

Transformer网络结构解析

博主会经常分享自己在人工智能阶段的学习笔记&#xff0c;欢迎大家访问我滴个人博客&#xff01;&#xff08;都不白来&#xff01;&#xff09; 小牛壮士 - 个人博客https://kukudelin.top/ 前言 Transformer 广泛应用于自然语言处理&#xff08;如机器翻译、文本生成&…

gateway进行接口日志打印

打印需求&#xff1a;对所有的接口打印&#xff1a;请求方式&#xff0c;请求路径&#xff0c;请求参数&#xff0c;用户id&#xff0c;访问IP&#xff0c;访问时间对增删改操作的接口打印&#xff1a;接口响应打印方案&#xff1a;给GET设置一个白名单&#xff08;因为get请求…

MATLAB实现图像增强(直方图均衡化)

直方图均衡化是一种常用的图像增强技术&#xff0c;它通过重新分布图像的像素强度值来增强图像的对比度。以下是MATLAB中实现直方图均衡化的详细方法。%% 直方图均衡变换 clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;%% …

java15学习笔记-密封类

360:Sealed Classes (Preview) 封闭类&#xff08;预览&#xff09; 总结 使用密封类和接口增强Java编程语言。密封类和接口限制了哪些其他类或接口可以扩展或实现它们。这是JDK 15中的预览语言功能。 目标 允许类或接口的作者控制负责实现它的代码。 提供一种比访问…

西门子PLC通过稳联技术EtherCAT转Profinet网关连接baumuller伺服器的配置案例

西门子PLC用稳联技术的EtherCAT转Profinet网关&#xff0c;连上baumuller伺服器的配置例子本案例实现西门子S71200 PLC通过EtherCAT转Profinet网关对baumuller&#xff08;Baumller&#xff09;伺服器的实时控制&#xff0c;适用于高精度运动控制场景&#xff08;如精密机床、自…

Ansible 详细笔记

Ansible 详细笔记 一、Ansible 基础概述 1.1 定义与定位 Ansible 是由 Red Hat 主导开发的开源自动化运维工具&#xff0c;基于 Python 语言实现&#xff0c;专注于简化 IT 基础设施的配置管理、应用部署、任务编排等操作。它采用无代理架构&#xff0c;通过 SSH 协议与被控节点…

【Java 后端】Spring Boot 集成 JPA 全攻略

Spring Boot 集成 JPA 全攻略 一、前言 在 Java Web 开发中&#xff0c;数据库访问是绕不开的话题。 传统方式使用 JDBC 编写 SQL&#xff0c;维护困难、可读性差。后来有了 MyBatis 这种半自动 ORM 框架&#xff0c;再到 JPA&#xff08;Java Persistence API&#xff09;这…

pytorch学习笔记-加载现有的网络模型(VGG16)、增加/修改其中的网络层(修改为10分类)

写在前面&#xff1a;有些地方和视频里不一样的是因为官方文档更新了&#xff0c;一些参数用法不一样也很正常&#xff0c;包括我现在的也是我这个时间节点最新的&#xff0c;谁知道过段时间会不会更新呢 建议大家不要一味看视频/博客&#xff0c;多看看官方文档才是正道&#…

RocketMQ 4.9.3源码解读-NameServer组件启动流程分析

作者源码阅读笔记主要采用金山云文档记录的,所有的交互图和代码阅读笔记都是记录在云文档里面,本平台的文档编辑实在不方便,会导致我梳理的交互图和文档失去原来的格式,所以整理在文档里面,供大家阅读交流 【金山文档 | WPS云文档】 namesrv 启动流程 相关重要类介绍说明…

《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准

《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准 前言 在电子系统开发领域&#xff0c;C 语言作为底层开发的核心语言&#xff0c;其代码质量直接关系到系统的稳定性、可维护性和扩展性。良好的编码规范不仅是团队协作的基础&#xff0c;更是降低生命周期成…

纯半精度模型和全精度模型的耗时分别为248微秒和1400微秒。混合精度模型371微秒比原始模型快大约四倍!

不过有一点需要注意:在上下文管理器内部生成的任何输出,必然会采用该上下文管理器的数据类型。因此,之后我们必须将这些输出转换回FP32(例如,使用float()函数)。 with torch.autocast(device_type="cuda", dtype=torch.float16): res16 = mixed32(torch.randn…

一款开源的远程桌面软件,旨在为用户提供流畅的游戏体验,支持 2K 分辨率、60 FPS,延迟仅为 40ms。

软件介绍 CloudPlayPlus&#xff08;云玩加&#xff09;是一款令人惊艳的开源远程桌面、串流软件&#xff0c;云玩加由个人开发者开发者&#xff0c;具有四大特征&#xff1a;开源、免费、低延迟、安全。 软件使用 客户端支持多个平台&#xff0c;包括 Windows、Mac OS、安卓…