2012-06-21 266 views
1

我是AJAX的初学者。我有一个问题,我无法在互联网上找到,所以我来到这里:)。我的第一个问题是与下面的代码块有关。ajax即跨浏览器activexobject问题

function createXHR() { 
    var iexhr...; 

    iexhr = ["MSXML2.XMLHttp.7.0", "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "MSXML3.XMLHttp", "Microsoft.XMLHttp"]; 
} 

我对上述代码的问题是:在我的搜索和研究中,我收集了使用不同版本xmlhttprequest的代码示例。我想创建一个跨浏览器xhr,并想知道是否所有这些版本都很重要,还是应该只使用一个?

回答

0

我不认为你想要这些。

真的有两个版本的XHR,你需要担心:window.ActiveXObject("Microsoft.XMLHTTP") oldIE和window.XMLHttpRequest()其他人。

你会看到通常的模式是这样的:

if(window.XMLHttpRequest){ 
    return new window.XMLHttpRequest(); 
} 
else { 
    return new window.ActiveXObject("Microsoft.XMLHTTP"); 
} 

或者类似的东西,这取决于你想做什么。

然而,XHR比返回对象有更多的东西,比如监视状态和错误,所以这正是人们为什么使用类库的原因。不要重新发明轮子。