AJAX 即跨浏览器 ActiveXObject 问题

ajax ie cross browser activexobject questions

本文关键字:ActiveXObject 问题 浏览器 AJAX      更新时间:2023-09-26

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

我认为你不想要这些。

实际上有两个版本的XHR需要担心:window.ActiveXObject( "Microsoft.XMLHTTP")用于旧IE和window.XMLHttpRequest()用于其他所有人。

您将看到的通常模式如下所示:

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

或者类似的事情,取决于你想做什么。

但是,XHR比返回对象要多得多,例如监视状态和错误,因此这正是人们使用库进行此类操作的原因。不要重新发明轮子。