这是我的代码:
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安装是正确的,所以我不确定是什么问题。
答案 0 :(得分:79)
XMLHttpRequest是 Web浏览器中的内置对象。
它不与Node一起分发;你必须install it separately,
使用npm,
安装npm install xmlhttprequest
现在您可以在代码中require
。
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
也就是说,the http module是用于从Node发出HTTP请求的内置工具。
Axios是一个用于发出HTTP请求的库,可供当今非常流行的Node和浏览器使用。
答案 1 :(得分:9)
由于xmlhttprequest module的上次更新时间约为2 years ago,因此在某些情况下,它无法按预期运行。
相反,您可以使用xhr2 module。换句话说:
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);
});
答案 2 :(得分:0)
使用xhr2 library,您可以从JS代码全局覆盖Duplicate requires entry: javafx.fxml
。这样,您便可以在节点中使用要从浏览器运行的外部库,也可以假定它们在浏览器中运行。
XMLHttpRequest
答案 3 :(得分:0)
只需通过以下代码进入终端安装xmlhttprequest
使用 npm 安装,
npm install xmlhttprequest
现在您可以在代码中要求它。
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();