XMLHttpRequest モジュールが定義されていない/見つかりません 質問する

XMLHttpRequest モジュールが定義されていない/見つかりません 質問する

これが私のコードです:

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 のインストールは正しかったので、何が問題なのかわかりません。

ベストアンサー1

XMLHttpRequestは、ウェブブラウザ

Node では配布されません。httpモジュールNode から HTTP リクエストを行うための組み込みツールです。

ノードからHTTPリクエストを行うほとんどの人は、より使いやすいAPIを備えたサードパーティのライブラリを使用しています。2つの一般的な選択肢は次のとおりです。アクシオス(Node.jsとブラウザの両方で使用可能)node-fetch(これは、ブラウザに組み込まれている fetch API を実装しており、XMLHttpRequest の最新の代替品です。

2022年アップデート: Node 18にはネイティブ実装がありますfetch デフォルトで有効

Node.js で XHR を本当に使用したい場合は、サードパーティの実装がいくつかあります。xmlhttprequest(メンテナンスされていないようです)xhr2(この回答に追加したときには更新されていましたが、それ以降は開発者によって放棄されたようです)。

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

     npm install xhr2
    
  2. これでrequireコード内で実行できるようになりました。

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

おすすめ記事