Este é o meu código:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
xhr.open("GET", "//URL")
xhr.setRequestHeader("Content-Type: application/json", "Authorization: Basic //AuthKey");
xhr.send();
Estou recebendo o erro:
Cannot find module 'xmlhttprequest'
Quando removo a primeira linha, recebo:
XMLHttpRequest is not defined
Eu pesquisei por toda parte e as pessoas mencionaram um problema com o Node.js aqui e ali, mas minha instalação do Node estava correta, então não tenho certeza de qual é o problema.
javascript
node.js
xmlhttprequest
wmash
fonte
fonte
Como a última atualização do módulo xmlhttprequest foi há cerca de 2 anos , em alguns casos ele não funciona como esperado.
Então, em vez disso, você pode usar o módulo xhr2 . Em outras palavras:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; var xhr = new XMLHttpRequest();
torna-se:
var XMLHttpRequest = require('xhr2'); var xhr = new XMLHttpRequest();
Mas ... é claro, existem módulos mais populares como Axios , porque -por exemplo- usa promessas:
// 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); });
fonte
Com a biblioteca xhr2, você pode substituir globalmente o
XMLHttpRequest
seu código JS. Isso permite que você use bibliotecas externas no nó, que foram planejadas para serem executadas em navegadores / assumem que são executadas em um navegador.global.XMLHttpRequest = require('xhr2');
fonte