AJAX 详解注释很全来自互联网
1: //用户名校验的方法
2: //这个方法使用XMLHTTPRequest对象进行AJAX的异步数据交互
3: var xmlhttp;
4: function verify(){
5: //1.使用dom的方式获取文本框中的值
6: //document.getElementBuId("userName")是dom中获取元素节点的一种方法,一个元素节点对应HTML页面中的一个标签,如果
7: //.value可以获取一个元素节点的value属性值
8: var userName = document.getElementById("userName").value;
9:
10: //2.创建XMLHttpRequest对象
11: //这是XMLHttpRequest兑现使用中最为复杂的一步
12: //需要这对IE和其他类型浏览器建立这个对象的不方式写不同的代码
13: if(window.XMLHttpRequest){
14: //针对FireFox,Mozillar,opera,safari,IE7,IE8
15: xmlhttp = new XMLHttpRequest();
16: //针对某些特定版本的mozillar浏览器的bug修正
17: if(xmlhttp.overrideMimeType){
18: xmlhttp.overrideMimeType("text/xml")
19: }
20: }else if(window.ActiveXObject){
21: //针对IE5,IE5.5,IE6(IE7,IE8)
22: //两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js数组中
23: //排在前面的版本较新
24: var activexName =["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
25: for(var i=0;i<activexName.length;i++){
26: try{
27: //取出一个控件名进行创建,如果创建成功就终止循环
28: //如果创建失败,抛出异常,然后继续循环,继续尝试创建
29: xmlhttp = new ActiveXObject(activexName[i]);
30: break;
31: } catch(e){
32: }
33: }
34: }
35:
36: // 确认XMLHttpRequest对象创建成功
37: // if(!xmlhttp){
38: // alert("XMLHttpRequest对象创建失败!");
39: // return;
40: // }else{
41: // //alert(xmlhttp);
42: // alert(xmlhttp.readyState);
43: // }
44:
45: //2 注册回调函数
46: //注册回调函数时只需要函数名不要加括号
47: //我们需要注册的是函数名称,如果加上括号,就把函数的返回值给注册上了,这是错误的
48: xmlhttp.onreadystatechange = callback;
49:
50: //3设置连接信息
51: //第一个参数表示http的请求方式。支持所有http的请求方式。主要使用get和post
52: //第二个参数表示请求的url地址,get方式的参数也在url中
53: //第三个参数表示采用异步还是同步方式交互,true表示异步
54: //GET方式请求的代码
55: //xmlhttp.open("GET","AJAXServer?name="+userName,true);
56:
57: //POST方式请求的代码
58: xmlhttp.open("POST","AJAXServer",true);
59: //POST方式需要自己设置http的请求头
60: xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
61: //POST方式发送数据
62: xmlhttp.send("name="+userName);
63:
64: //4 发送数据,开始和服务器端进行交互
65: //同步方式下,send这句话会在服务器设置回来后才执行完
66: //异步方式,send这句话执行晚会立即完成
67:
68: //GET方式
69: //xmlhttp.send(null);
70: }
71:
72: //回调函数
73: function callback(){
74: // alert(xmlhttp.readyState);
75: //5接收响应数据
76: //判断对象的状态是交互完成
77: if(xmlhttp.readyState==4){
78: //判断http的交互是否成功、
79: if(xmlhttp.status==200){
80: //获取服务器端返回的数据
81: //获取服务器端输出的纯文本数据
82: var responseText = xmlhttp.responseText;
83: //将数据显示在页面上
84: //通过dom方式找到div标签所对应的元素节点
85: var divNode = document.getElementById("result");
86: //设置元素节点中的html内容
87: divNode.innerHTML=responseText;
88: }else
89:
90: {
91: alert("出错了");
92: }
93: }
94: }
Follow me: https://github.com/zce