To jest mój kod:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
xhr.open("GET", "//URL")
xhr.setRequestHeader("Content-Type: application/json", "Authorization: Basic //AuthKey");
xhr.send();
Otrzymuję błąd:
Cannot find module 'xmlhttprequest'
Kiedy usuwam pierwszą linię, otrzymuję:
XMLHttpRequest is not defined
Szukałem wszędzie i ludzie wspominali o problemie z Node.js tu i tam, ale moja instalacja Node była poprawna, więc nie jestem pewien, na czym polega problem.
Ponieważ ostatnia aktualizacja modułu xmlhttprequest miała miejsce około 2 lata temu , w niektórych przypadkach nie działa zgodnie z oczekiwaniami.
Zamiast tego możesz użyć modułu xhr2 . Innymi słowy:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; var xhr = new XMLHttpRequest();
staje się:
var XMLHttpRequest = require('xhr2'); var xhr = new XMLHttpRequest();
Ale ... oczywiście są bardziej popularne moduły, takie jak Axios , ponieważ - na przykład - korzysta z obietnic:
// 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); });
źródło
Dzięki bibliotece xhr2 możesz globalnie nadpisywać
XMLHttpRequest
z kodu JS. Pozwala to na korzystanie z zewnętrznych bibliotek w węźle, które były przeznaczone do uruchamiania z przeglądarek / zakładają, że są uruchamiane w przeglądarce.global.XMLHttpRequest = require('xhr2');
źródło