创建 XMLHttpRequest 对象
var xmlhttp; if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 浏览器执行代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
向服务器发送请求请求
open(method,url,async)规定请求的类型、URL 以及是否异步处理请求。xmlhttp.open("GET","/try/ajax/demo_get.php",true);
- method:请求的类型;GET 或 POST
- url:文件在服务器上的位置
- async:true(异步)或 false(同步)
send(string)将请求发送到服务器。xmlhttp.send();
- string:仅用于 POST 请求
POST 请求
xmlhttp.open("POST","/try/ajax/demo_post2.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");//常用有两种:application/x-www-form-urlencoded和multipart/form-data xmlhttp.send("fname=Henry&lname=Ford");//这里发送表单的数据
JS解发:使用当前值,事件为按键事件
<input type="text" id="txt1" onkeyup="showHint(this.value)" />
function showHint(str) { var xmlhttp; if (str.length==0) { document.getElementById("txtHint").innerhtml="";//设置空白 return; } .... xmlhttp.onreadystatechange=function() //onreadystatechange 事件 { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","/ajax/gethint.asp?q="+str,true); xmlhttp.send();
响应
非XML请用
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
示例
function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "cd_catalog.xml", true); xhttp.send(); } function myFunction(xml) { var i; var xmlDoc = xml.responseXML; var table="<tr><th>Artist</th><th>Title</th></tr>"; var x = xmlDoc.getElementsByTagName("CD"); for (i = 0; i <x.length; i++) { table += "<tr><td>" + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</td></tr>"; } document.getElementById("demo").innerHTML = table; }
一个上午学完!!你懂了?反正我是懂了