ajax即跨浏览器activexobject问题

时间:2012-06-21 20:19:16

标签: javascript ajax internet-explorer cross-browser

我是AJAX的初学者。我有一个在互联网上找不到的问题,所以我来到这里:)。我的第一个问题是与下面的代码块有关。

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,并想知道是否所有这些版本都很重要,或者我应该只使用一个?

1 个答案:

答案 0 :(得分:0)

我认为你不想要任何这些。

您需要担心的是两个版本的XHR:oldIE为window.ActiveXObject( "Microsoft.XMLHTTP"),其他人为window.XMLHttpRequest()

你会看到的通常模式是:

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

或类似的东西,取决于你想要做的事情。

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