AJAX--XMLHttpRequest Object 知识整理

时间:2024-05-03 08:37:38

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的值.