- A+
所属分类:Web前端
AJAX
一. 什么是 AJAX?
AJAX 全称:Asynchronous Javascript And XML(异步的 JavaScript 与 XML)
网页的局部刷新技术,网页不需要刷新整个页面来更新部分网页数据
二. 原始的 JS 创建 AJAX 步骤(☆)
-
创建 AJAX 的核心对象,XMLHttpRequest 根据不同的浏览器来创建相对应的Ajax对象
var req; if(window.XMLHttpRequest){ // 非IE req = new XMLHttpRequest(); }else { // IE req = new ActiveXObject("Microsoft.XMLHTTP"); }
-
与服务器进行连接
// 第一个参数:提交方式 get 或 post // 第二个参数:访问后台的 URL // 第三个参数:是否异步,true 表示异步,false 表示同步 req.open("post", url, true);
-
发送请求
req.send(); // get方式:index?id=1 req.send(null); // post方式: 设置编码方式 req.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); var data = "id=" + 1; req.send(data);
-
指定回调函数,接收后台返回值(绑定回调函数 / 状态监听函数)
req.onreadystatechange = function() { // AJAX 状态是否等于4,状态为4表示完成了整个请求 if(req.readyState == 4) { // HTTP 状态等于200 if(req.status == 200) { // 处理返回值 var info = req.responseText; } } }
三. readyState 属性值(AJAX 的状态)
状态值 | 描述 |
---|---|
0 | 表示“未初始化状态”,已经创建好 XMLHttpRequest 对象,但没有初始化 |
1 | 表示"载入状态",XMLHttpRequest 调用了 open 函数,但没有发送请求 |
2 | 表示"发送状态",XMLHttpRequest 调用了 send 函数,发送请求 |
3 | 表示"接收状态",Servlet 已经接收到 HTTP 请求,但没有执行完毕 |
4 | 表示"已加载状态",完全被接收,并且处理完成,前端 AJAX 可以接收返回值 |