Модуль 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 была правильной, поэтому я не уверен, в чем проблема.
Ответы
Ответ 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);
});