Это мой код:
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 была правильной, поэтому я не уверен, в чем проблема.
Поскольку последнее обновление модуля xmlhttprequest было около 2 лет назад , в некоторых случаях он не работает должным образом .
Вместо этого вы можете использовать модуль xhr2 . Другими словами:
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); });
источник
С помощью библиотеки xhr2 вы можете глобально перезаписать
XMLHttpRequest
свой JS-код. Это позволяет вам использовать внешние библиотеки в узле, которые были предназначены для запуска из браузеров / предполагают, что они запускаются в браузере.global.XMLHttpRequest = require('xhr2');
источник