2014-02-20 67 views
0

之間有什麼區別:XHR對象的創建

var xmlhttp = getXmlHttp() 

var xmlhttp = new XMLHttpRequest() 

? 如果我正確理解,這兩個案例中的每一個都創建XRH對象。

+1

'getXmlHttp()'是你寫的東西。 '新的XMLHttpRequest()'是內置的。 – techfoobar

回答

1

請看看這個功能:

function getXMLHttp() { 
    var x = false; 
    try { 
     x = new XMLHttpRequest(); 
    } 
    catch(e) { 
     try { 
      x = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch(ex) { 
      try { 
       req = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch(e1) { 
       x = false; 
      } 
     } 
    } 
    return x; 
} 

getXMLHttp()是您的自定義功能,以簡化創建一個XHR對象與跨瀏覽器的問題。

XMLHttpRequest是與當前現代瀏覽器一起使用的對象。對於IE5或IE6等舊瀏覽器,您可以使用ActiveXObject("Microsoft.XMLHTTP");

但是,每個瀏覽器的返回對象是相同的。

1

如果你打開Chrome開發者工具和嘗試以下操作:

> getXmlHttp() 
ReferenceError: getXmlHttp is not defined 

這表明getXmlHttp沒有一個內置的功能。

+0

如果我添加代碼 'function getXMLHTTP(){ var x = false; 嘗試x = new XMLHttpRequest(); (e){ 嘗試x = new ActiveXObject(「Microsoft.XMLHTTP」); (ex){ try { req = new ActiveXObject(「Msxml2.XMLHTTP」); (e1){ } x =假; } } } return x; }' 它也返回XMLHttpRequest對象? –