这是今天遇到的两个问题,在Ajax应用日益火爆的今天,是否应用Ajax技术已成为一个网站的脸面问题,而Ajax的核心技术xmlHttp在FF及IE中不同的调用方法却也是让很多开发者头痛的问题之一。下面的代码在IE、FF、Opera中通过
function createXmlHttp() { var A=null; try { A=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { A=new ActiveXObject("Microsoft.XMLHTTP"); } catch(oc){ } } if ( !A && typeof XMLHttpRequest != "undefined" ) { A=new XMLHttpRequest(); } return A; } function getReady() { if(xmlDom.readyState==4) { if(xmlDom.status==200) { alert(xmlDom.responseText); } else { alert("Error:" + xmlDom.statusText); } } } xmlDom = createXmlHttp(); var url = 'ajax_test.php'; xmlDom.onreadystatechange = getReady; xmlDom.open("GET",url,true); xmlDom.send(null);
另外还遇到一个问题,如果将最后5行代码封装为函数,将遇到xmlHttp变量初始化后为局部变量为其他函数使用,但如果放到函数外作为全局变量则当前页面只能执行一次xmlHttp方法。查询了大量资料后,发现解决这个问题的方法也相当的简单,在函数中,只需将变量定义前的var去掉,则此变量为全局变量
