创建 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-dataxmlhttp.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;}
一个上午学完!!你懂了?反正我是懂了
AJAX学习笔记
原文地址:https://www.cnblogs.com/praybb/p/8337048.html