AJAX是一种利用XMLHttpRequest或fetch API实现异步通信、局部更新页面的技术。它通过异步请求避免页面刷新,支持多种HTTP方法,常用fetch(推荐)和XMLHttpRequest两种实现方式,并需注意跨域、错误处理、JSON解析及加载状态管理。

AJAX(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的前提下,与服务器交换数据并更新部分页面的技术。它不是某一个具体的语言或框架,而是利用浏览器内置的 XMLHttpRequest 对象(或现代的 fetch API)实现异步通信的编程方式。
核心原理:异步请求不阻塞页面
传统网页提交表单会跳转或刷新页面;AJAX则让 JavaScript 在后台悄悄发请求、收响应,拿到数据后再用 DOM 操作局部更新内容——用户感觉不到页面“闪动”,体验更流畅。
- 请求发起后,JS 不等待响应,继续执行后续代码
- 响应返回时,通过回调函数(如
onload)或 Promise 处理数据 - 支持 GET(查)、POST(增/改)、PUT、DELETE 等 HTTP 方法
两种常用实现方式
1. 使用 fetch API(推荐,现代写法)
语法简洁,基于 Promise,支持 async/await:
立即学习“Java免费学习笔记(深入)”;
async function loadData() {
try {
const res = await fetch('/api/users');
const data = await res.json();
console.log(data); // 渲染到页面
} catch (err) {
console.error('请求失败:', err);
}
}
2. 使用 XMLHttpRequest(兼容老浏览器)
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速
更底层,需手动处理状态和回调:
const xhr = new XMLHttpRequest();
xhr.open('GET', '/api/users');
xhr.onload = function() {
if (xhr.status === 200) {
const data = JSON.parse(xhr.responseText);
console.log(data);
}
};
xhr.send();
发送带数据的请求(如登录、提交表单)
向服务器传参常用两种格式:
-
URL 参数(GET):拼在地址后,如
/search?q=js -
请求体(POST/PUT):用
FormData上传表单,或用JSON.stringify()发送 JSON 数据,并设置Content-Type头
示例(fetch 发送 JSON):
fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username: 'admin', password: '123' })
})
常见注意事项
实际开发中容易踩坑的地方:










