//创建ajax对象
function createXMLHttpRequest(){
var request = false;
//一般先判断非IE浏览器
//window对象中有XMLHttpRequest存在就是非IE,包括(IE7,IE8)
if(window.XMLHttpRequest){
request=new XMLHttpRequest();//非IE以及IE7,IE8浏览器
if(request.overrideMimeType){
request.overrideMimeType("text/xml");//重置mime类型
}
//window对象中有ActiveXObject属性存在就是IE浏览器的低版本
}else if(window.ActiveXObject){
var versions=['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];//各种IE浏览器创建Ajax对象时传递的参数
for(var i=0; i<versions.length; i++){
try{
request=new ActiveXObject(versions[i]);//各个IE浏览器版本的参数不同
if(request){
return request;
}
}catch(e){
request=false;
}
}
}
return request;
}
xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }
readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
- 0: 请求未初始化
- 1: 服务器连接已建立
- 2: 请求已接收
- 3: 请求处理中
- 4: 请求已完成,且响应已就绪
分别是xmlhttp.responseText和responseXML,当返回的是字符串时,xmlhttp对象的responseText有值,但responseXML没有值(为null),但如果返回的是xml格式(不管是否有声明<?xml version="1.0">),
responseXML对象是一个对象(已解析),而且responseText也会有xml的字符串形式