2016-04-27 52 views
0

我試圖用XMLHttpRequest寫一些客戶端JavaScript函數:XMLHttpRequest是不是

$('#someId').on('input', function() { 
    var req = XMLHttpRequest(); 
    // … 
}); 

,但我得到了以下錯誤:

XMLHttpRequest is not a function. (In 'XMLHttpRequest()', 'XMLHttpRequest' is an instance of XMLHttpRequestConstructor)

如何解決這一問題?

回答

3

錯過new,必須是:

$('#someId').on('input', function() { 
    var req = new XMLHttpRequest(); 
    // … 
}); 

你可以閱讀更多關於XHRHttpRequest這裏 -
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

以及如何使用它在這裏工作 -
https://developer.mozilla.org/ru/docs/XMLHttpRequest
(僅此頁翻譯存在,但谷歌翻譯可以幫助很多:))

p.s.如果您使用的是jQuery,則更好地使用$.ajax(),如@ synthet1c所述。

瞭解更多關於它在這裏 - http://api.jquery.com/jquery.ajax/

+1

你應該也只是如果已經安裝了jQuery,請使用jQuery $ .ajax方法,因爲它可以在所有瀏覽器中爲您提供一致的API(例如) – synthet1c

1

如果您已經使用jQuery,可以使Ajax請求與$.ajax()方法:

例子:

$('#someId').on('input', function() { 

    $.ajax({ 

     url: 'some_file.php', 
     data: { 

      postparam_1: 'ok', 
      postparam_2: 'no' 
     }, 
     method: 'get', 
     success: function(x) { 

      alert(x); // string result from server 
     }, 
     error: function() { 

      alert('Error!'); 
     } 
    }); 
}); 

如果你想使用它在您的應用程序中,您必須檢索適用於所有瀏覽器的XmlHttpRequest對象。

var XMLHttpFactories = [ 
    function() {return new XMLHttpRequest()}, 
    function() {return new ActiveXObject("Msxml2.XMLHTTP")}, 
    function() {return new ActiveXObject("Msxml3.XMLHTTP")}, 
    function() {return new ActiveXObject("Microsoft.XMLHTTP")} 
]; 

function createXMLHTTPObject() { 
    var xmlhttp = false; 
    for (var i=0;i<XMLHttpFactories.length;i++) { 
     try { 
      xmlhttp = XMLHttpFactories[i](); 
     } 
     catch (e) { 
      continue; 
     } 
     break; 
    } 
    return xmlhttp; 
} 
+1

只讀第二部分如果您要支持IE6 https:// deve loper.microsoft.com/en-us/microsoft-edge/ie6countdown/ –

相關問題