Подтвердить что ты не робот

Модуль 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 здесь и там, но моя установка Node была правильной, поэтому я не уверен, в чем проблема.

4b9b3361

Ответ 1

XMLHttpRequest - это встроенный объект в веб-браузерах.

Он не распространяется с Node; вы должны установить его отдельно с помощью npm.

Тем не менее, Node поставляется с http-модулем, который является обычным инструментом для выбора HTTP-запросов от Node.

Ответ 2

Поскольку последнее обновление модуля xmlhttprequest было 2 лет назад, в некоторых случаях он не работает должным образом.

Итак, вы можете использовать xhr2 module. Другими словами:

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

становится:

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

Но... конечно, есть более популярные модули, такие как Axios, потому что, например, использует promises:

// 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);
});