1.创建XMLHttpRequest对象
variable = new XMLHttpRequest()
variable = new ActiveXObject('Microsoft.XMLHTTP') //IE5, IE6
2.应对所有现代浏览器, 需要检查浏览器是否支持XMLHttpRequest对象. 如果支持则创建相应对象.
var xmlhttp;
if(window.XMLHttpRequest){
//code for IE7+, firefox, chorme, opera, safari.
xmlhttp = new XMLHttpRequest();
}else{
//code for IE5, IE6
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
3.向服务器发送请求, 是否异步处理.
1)xmlhttp.open('GET', url, true);
xmlhtto.send();
2)xmlhttp.open('get', "demo_get.php?t="+math.random(), true) //追加唯一ID:t 清除可能的缓存.
xmlhttp.send();
3)POST方式提交表单. //需要使用setRequesetHeader() 来设置http头部, 然后使用send()中规定你希望发送的数据.
xmlhttp.open('post',"ajax_text.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("fname=bill&name=Gates");
4)获取来自服务器的响应数据, 如果返回的数据不是xml(responseXML), 则采用responseText.
var xmlhttp;
function loadXMLDoc(url, cfunc){
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = cfunc;
xmlhttp.open('GET', url, true);
xmlhttp.send();
}
function myfunction(){
loadXMLDoc("/ajax/demo.php", function() //callback 函数
{
if(xmlhttp.readyState == 4 && xmlhttp.statue == 200){
document.getElementById('mydiv').innerHTML = xmlhttp.responseText();
}
}
)
}
// onreadyStatechange事件被触发5次(0-4), 对应每个readyState的值.