Voici mon code:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
xhr.open("GET", "//URL")
xhr.setRequestHeader("Content-Type: application/json", "Authorization: Basic //AuthKey");
xhr.send();
J'obtiens l'erreur:
Cannot find module 'xmlhttprequest'
Lorsque je supprime la première ligne, j'obtiens:
XMLHttpRequest is not defined
J'ai cherché partout et des gens ont mentionné un problème avec Node.js ici et là, mais mon installation de Node était correcte, donc je ne suis pas sûr de quel est le problème.
Étant donné que la dernière mise à jour du module xmlhttprequest remonte à environ 2 ans , dans certains cas, cela ne fonctionne pas comme prévu.
Donc à la place, vous pouvez utiliser le module xhr2 . En d'autres termes:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; var xhr = new XMLHttpRequest();
devient:
var XMLHttpRequest = require('xhr2'); var xhr = new XMLHttpRequest();
Mais ... bien sûr, il existe des modules plus populaires comme Axios , car -par exemple- utilise des promesses:
// 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); });
la source
Avec la bibliothèque xhr2, vous pouvez écraser globalement à
XMLHttpRequest
partir de votre code JS. Cela vous permet d'utiliser des bibliothèques externes dans le nœud, qui étaient destinées à être exécutées à partir de navigateurs / supposent qu'elles sont exécutées dans un navigateur.global.XMLHttpRequest = require('xhr2');
la source