1. ホーム
  2. javascript

[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない

2022-01-23 17:26:51

質問

これは私のコードです。

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'

1行目を削除すると、次のようになります。

XMLHttpRequest is not defined

あちこち検索してみると、Node.jsの問題があちこちで言われていますが、私のNodeのインストールは正しかったので、何が問題なのかよくわかりません。

解決方法は?

XMLHttpRequest は ウェブブラウザ .

Nodeと一緒に配布されているわけではありません。 httpモジュール は、Node から HTTP リクエストを行うためのビルトインツールです。

ノードからHTTPリクエストを行う場合、ほとんどの人はよりフレンドリーなAPIを持つサードパーティライブラリを使用します。よく使われる2つの選択肢は アクシオス (Node.jsとブラウザの両方で使用可能)と node-fetch (これはブラウザに組み込まれているフェッチAPIを実装したもので、XMLhttpRequestの現代的な代替品です。

Node.jsでXHRを本当に使いたいのであれば、サードパーティによる実装がいくつかあります。 xmlhttprequest (メンテナンスされていないようです)と xhr2 (今年になって更新があったもの)。

  1. npmでインストールします。

     npm install xhr2
    
    
  2. これで require をコードに組み込んでください。

     var XMLHttpRequest = require('xhr2');
     var xhr = new XMLHttpRequest();