阿杰,我帮你整理了一份 AJAX 简单请求流程,用最常见的方式(原生 JavaScript 和 jQuery)说明,方便理解整个过程。
1️⃣ AJAX 基本概念
- AJAX(Asynchronous JavaScript And XML):异步 JavaScript 与 XML,用于前端向服务器发送请求并处理响应,而无需刷新整个页面。
- 核心特点:
- 异步请求(页面不刷新)。
- 可以使用 JSON、XML 或文本格式传输数据。
- 提升用户体验。
2️⃣ 原生 JavaScript AJAX 请求流程
// 1. 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 2. 配置请求:方法(GET/POST)、URL、是否异步
xhr.open('GET', 'https://api.example.com/data', true);
// 3. 注册回调函数,监听请求状态
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) { // 请求完成
if (xhr.status === 200) { // 请求成功
console.log('返回数据:', xhr.responseText);
} else {
console.error('请求失败,状态码:', xhr.status);
}
}
};
// 4. 发送请求
xhr.send();
流程说明
- 创建对象:
XMLHttpRequest()
。 - 配置请求:
xhr.open()
,指定请求方式、URL、是否异步。 - 注册事件:监听
onreadystatechange
或onload
。 - 发送请求:
xhr.send()
。 - 处理响应:通过
xhr.responseText
(文本)、xhr.responseXML
(XML) 或 JSON 解析。
3️⃣ 使用 jQuery 简化 AJAX
$.ajax({
url: 'https://api.example.com/data', // 请求地址
type: 'GET', // 请求方式
dataType: 'json', // 数据类型
success: function(response) { // 请求成功回调
console.log('返回数据:', response);
},
error: function(xhr, status, error) { // 请求失败回调
console.error('请求失败:', status, error);
}
});
jQuery 优势
- 自动处理浏览器兼容性。
- 支持链式调用(
$.get()
,$.post()
)。 - 可直接解析 JSON 数据。
4️⃣ AJAX 简单请求流程图
- 用户操作(点击按钮/页面加载)
- 前端 JS 发起 AJAX 请求 →
XMLHttpRequest
/ jQuery - 请求发送到服务器
- 服务器处理请求 → 查询数据库 / 执行逻辑
- 服务器返回响应数据 → JSON / XML / 文本
- 前端接收数据 → 处理并更新页面部分内容
💡 特点:整个过程 不刷新页面,用户体验更流畅。
5️⃣ 小技巧
- GET vs POST
- GET:适合获取数据,数据量小,参数显示在 URL。
- POST:适合提交数据,数据量大,更安全。
- JSON 格式最常用:
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xhr.send(JSON.stringify({name: "阿杰"}));
- 超时设置:
xhr.timeout = 5000; // 5秒超时 xhr.ontimeout = function(){ console.error('请求超时'); }
发表回复