1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>Ajax</title> 6 7 <script language="javascript"> 8 //<script language="javascript" type="application/javascript"> // 如果上方的代码不能够完整实现就使用这个 9 10 //IE浏览器实例化方式 11 //var h = new ActiveXObject("Msxml2.XMLHTTP"); 12 13 //var p = new ActiveXObject("Microsoft.XMLHTTP"); 14 15 16 //非IE浏览器 17 //var f = new XMLHttpRequest(); 18 19 //alert(p.getAllResponseHeaders()); 20 21 var hx = false; 22 //定义函数 23 function test() 24 { 25 //所有浏览器通用实例化代码 26 if(window.XMLHttpRequest) //非IE IE7版本及以上 都支持非ie形式 27 { 28 hx = new XMLHttpRequest(); //如果是非IE浏览器 那么就会实例化 29 alert("qqq"); //如果是实例化成功上方的,那么就会输出这句话 30 } 31 else if(window.ActiveXObject) //IE 32 { 33 try{ 34 hx = new ActiveXObject("Msxml2.XMLHTTP"); //实例化 35 alert("qqq2"); //如果实例化成功上方的 那么就会输出这句话 36 } 37 catch(e) 38 { 39 alert(e); 40 try 41 { 42 hx = new ActiveXObject("Microsoft.XMLHTTP"); //实例化 43 alert("qqq3"); //如果实例化成功上方的 那么就会输出这句话 44 } 45 catch(e) 46 { 47 alert(e); 48 } 49 } 50 } 51 52 //测试创建XMLHttpRequest是否成功 53 if(!hx) 54 { 55 alert("创建XMLHttpRequest失败"); 56 } 57 else 58 { 59 alert("创建XMLHttpRequest成功"); 60 } 61 62 63 /* 64 //异步请求的请求类型有两种方式 一种是 get 另一种是 post 两种方法都有各自的方式 65 66 67 //get方式 68 69 // 1 设置异步请求的url等信息 70 hx.open("GET","ajaxtest?userid=abc",true); //("请求类型 GET/POST",URL,是否异步 true/false) 71 // 2 设置回调函数 事件处理器 72 hx.onreadystatechange = getResult; //将回调函数的函数名作为一个事件处理器给 hx.onreadystatechange 73 //调用请求的发送 74 hx.send(null); //在需要请求传送参数时设置异步请求时用 post 方式 75 76 } 77 78 //回调函数 79 function getResult() 80 { 81 // 82 //alert("readyState = "+hx.readyState); 83 if(hx.readyState == 4) 84 { 85 if(hx.status == 200) 86 { 87 alert("回调信息 = " + hx.responseText); //返回的值 88 } 89 else 90 { 91 alert("错误状态码 = " + hx.status + "状态文本信息 = " + hx.statusText); 92 } 93 } 94 } 95 96 97 98 */ 99 100 101 102 //post方式 103 104 // 1 设置异步请求的url等信息 105 hx.open("POST","ajaxtest",true); //("请求类型 GET/POST",URL,是否异步 true/false) 106 // 2 设置回调函数 事件处理器 107 hx.onreadystatechange = getResult; //将回调函数的函数名作为一个事件处理器给 hx.onreadystatechange 108 109 //调用请求的发送 110 //在需要请求传送参数时设置异步请求时用 post 方式 111 hx.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 112 hx.send("userid=abc"); 113 114 } 115 //回调函数 116 function getResult() 117 { 118 // 119 //alert("readyState = "+hx.readyState); 120 if(hx.readyState == 4) 121 { 122 if(hx.status == 200) 123 { 124 alert("回调信息 = " + hx.responseText); //返回的值 125 } 126 else 127 { 128 alert("错误状态码 = " + hx.status + "状态文本信息 = " + hx.statusText); 129 } 130 } 131 } 132 133 //alert("Server = " + hx.getAllResponseHeaders("Server")); 134 135 </script> 136 137 </head> 138 139 <body> 140 141 <input type="text" width="30" onchange="test()" /> 142 143 </body> 144 </html>