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>