2015-09-16 21 views
24

這是我的代碼:XMLHttpRequest的模塊/發現

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 
var xhr = new XMLHttpRequest(); 
xhr.open("GET", "//URL") 
xhr.setRequestHeader("Content-Type: application/json", "Authorization: Basic //AuthKey"); 
xhr.send(); 

我收到錯誤:

Cannot find module 'xmlhttprequest' 

當我刪除的第一行,我得到:

XMLHttpRequest is not defined 

我已經搜遍了,人們都提到Node.js在這裏和那裏的問題,但我的節點安裝是正確的,所以我不知道問題是什麼。

+0

使用'http'代替 – Tushar

回答

33

XMLHttpRequest是網頁瀏覽器中的一個內置對象。

它不與Node一起分發;您必須使用npminstall it separately

也就是說,Node自帶the http module這是從Node發出HTTP請求的常用工具。

+0

這個工作。謝謝 – wmash

+0

使用** webpack -p --progress ** 創建dist並執行** npm run start **。我得到這個** ReferenceError:XMLHttpRequest未定義**雖然我沒有在我的src文件夾中使用xmlhttprequest lib – tom

+0

@anoop - 如果您有新問題,請[提出新問題](http:// stackoverflow。 COM /問題/賣出)。鏈接到這一個,如果它有助於提供上下文。提供[mcve]。 – Quentin

0

由於xmlhttprequest module的上次更新大約是2 years ago,在某些情況下,它不能按預期工作。因此,您可以使用xhr2 module。換句話說:

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 
var xhr = new XMLHttpRequest(); 

變爲:

var XMLHttpRequest = require('xhr2'); 
var xhr = new XMLHttpRequest(); 

但是......當然,也有像Axios比較流行的模塊,因爲 - 因爲示例 - 使用承諾:

// Make a request for a user with a given ID 
axios.get('/user?ID=12345').then(function (response) { 
    console.log(response); 
}).catch(function (error) { 
    console.log(error); 
});