您的位置:首页 > Web前端 > JavaScript

javascript的ajax请求正确写法(兼容多浏览器)

2013-09-21 17:28 531 查看
function createXMLHttp() {
var XmlHttp;
if (window.ActiveXObject)
{
var arr=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
for(var i=0;i<arr.length;i++) {
try {
XmlHttp = new ActiveXObject(arr[i]);
return XmlHttp;
}
catch(error) { }
}
} else {
try {
XmlHttp=new XMLHttpRequest();
return XmlHttp;
}
catch(otherError) { }
}
}

function xmlPost() {
var xmlHttp = createXMLHttp();
var url= 'TicketHandler.ashx?t=' + new Date();
     xmlHttp.open('GET',url,true);  
     xmlHttp.onreadystatechange = function() {  
       if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var result = xmlHttp.responseText;
if (result && result.length > 0){
result = result.split(',');
var left;
for (var i=0; i<result.length; i++){
left = document.getElementById('left_' + result[i].split(':')[0]);
if (left){
left.innerHTML = result[i].split(':')[1];
}
}
}
}
}
xmlHttp.send('');
}


很多人经常遇到在Firefox浏览器下不work的时候,请注意上述代码的大小写,比如:

xmlHttp.readyState == 4 && xmlHttp.status == 200 和 xmlHttp.responseText ,如果大小写有误,那么在Firefox浏览器下很可能会出现undefine的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: