简介
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。
AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
原生Ajax
XMLHttpRequest 是 AJAX 的基础。
A、XMLHttpRequest 对象
所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
XMLHttpRequest 用于在后台与服务器交换数据。
1、创建XMLHttpRequest对象
var xmlhttp; // Ajax的实现基本都基于XMLHttpRequest对象 xmlhttp = new XMLHttpRequest()
2、设置回调函数
当请求被发送到服务器时,执行一些基于响应的任务。
readyState 属性存有 XMLHttpRequest 的状态信息。
属性 | 描述 |
---|---|
onreadystatechange | 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 |
readyState |
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
|
status | 200: "OK" 404: 未找到页面 |
每当 readyState 改变时,就会触发 onreadystatechange 事件。
// 响应处于 onreadystatechange 事件中的就绪状态时执行的函数 xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } };
3、如需将请求发送到服务器,使用 XMLHttpRequest 对象的 open() 和 send() 方法
// GET请求 一些数据可封装在URL上面 xmlhttp.open(\'GET\', \'/index?p=123\'); xmlhttp.send(); // POST请求 发送的数据由send发送 xmlhttp.open(\'POST\', \'/index/\'); // 如需要像 HTML 表单那样 POST 数据,使用 setRequestHeader() 来添加 HTTP 请求头。 xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send(\'p=321\');
方法 | 描述 |
---|---|
open(method,url,async) |
规定请求的类型、URL 以及是否异步处理请求。
|
send(string) |
将请求发送到服务器。
|
4、服务器响应
如需获得来自服务器的响应,XMLHttpRequest 对象的 responseText 或 responseXML
在onreadystatechange执行服务器响应信息
属性 | 描述 |
---|---|
responseText | 获得字符串形式的响应数据。 |
responseXML | 获得 XML 形式的响应数据。 |
B、XMLHttpRequest 详细及DEMO
XmlHttpRequest对象的主要方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
a. void open (String method,String url,Boolen async) 用于创建请求 参数: method: 请求方式(字符串类型),如:POST、GET、DELETE... url: 要请求的地址(字符串类型) async: 是否异步(布尔类型) |