Node.js でプロキシ サーバーを使用すると、企業イントラネット内のパブリック ネットワーク リソースにアクセスできないなど、ネットワーク制限によりリソースにアクセスできない問題を解決できます。この記事では、Node.js でプロキシ サーバーを設定し、AJAX を使用して HTTP リクエストを送信する方法について説明します。
1. 環境変数を設定する
Node.js を使用して HTTP リクエストを送信する場合、環境変数を設定することでプロキシ サーバーを指定できます。環境変数を設定する方法は次のとおりです。
Windows:
コマンド ラインで次の指示を入力します:
set HTTP_PROXY=http://your-proxy:port
set HTTPS_PROXY=http: //your-proxy:port
Linux/Mac OS:
コマンド ラインで次のコマンドを入力します:
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY = http://your-proxy:port
ここで、http://your-proxy:port
はプロキシ サーバーのアドレスとポート番号です。 ID を確認する必要がある場合は、ユーザー名とパスワードを追加できます (例:
http://username:password@your-proxy:port
2)。Node.js を使用して HTTP を送信します。 request
Node.js で http.request(options[, callback])
を使用して HTTP リクエストを送信します。ここで、options
はリクエストのパラメータです。プロキシ サーバーを設定した後、プロキシ サーバーのアドレスとポート番号をパラメータとして options
オブジェクトに渡すことができます。
以下は例です:
const http = require('http'); const proxy = { host: 'your-proxy', port: 8080 }; const options = { headers: { 'User-Agent': 'Node.js' }, host: 'www.example.com', port: 80, path: '/index.html', method: 'GET', agent: new http.Agent({ // 指定代理服务器 proxy, keepAlive: true }) }; const req = http.request(options, (res) => { console.log(`STATUS: ${res.statusCode}`); console.log(`HEADERS: ${JSON.stringify(res.headers)}`); res.setEncoding('utf8'); res.on('data', (chunk) => { console.log(`BODY: ${chunk}`); }); res.on('end', () => { console.log('No more data in response.') }); }); req.on('error', (e) => { console.error(`problem with request: ${e.message}`); }); req.end();
上記のコードでは、プロキシ サーバーのアドレスを your-proxy
に設定し、ポート番号を 8080# に設定します。 ## 。同時に、アクセスしたいWebサイト、リクエストメソッド、パスなどの情報を
optionsで指定します。
agent オブジェクトは
options でも指定されていることに注意してください。これは、管理に使用される
http.Agent のインスタンスです。接続の再利用。
agent.proxy 属性を通じてプロキシ サーバーを指定し、
keepAlive 属性を
true に設定します。これは、長時間の接続を有効にし、HTTP リクエストのパフォーマンスを向上させることを意味します。
http.request を直接使用する必要はありませんが、サードパーティのリクエストを使用できます。それを実装するライブラリ。ブラウザでは通常、
XMLHttpRequest オブジェクトを使用して AJAX リクエストを送信します。
XMLHttpRequest の代替手段である
xhr2 ライブラリを使用できます。これは、ブラウザーおよび Node.js 環境で AJAX リクエストをサポートします。以下は、
xhr2 ライブラリを使用して HTTP リクエストを送信する例です。
const XMLHttpRequest = require('xhr2'); const xhr = new XMLHttpRequest(); xhr.open('GET', 'http://www.example.com/index.html'); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { console.log(`STATUS: ${xhr.status}`); console.log(`HEADERS: ${JSON.stringify(xhr.getAllResponseHeaders())}`); console.log(`BODY: ${xhr.responseText}`); } }; xhr.setProxy(`http://your-proxy:8080`); // 设置代理服务器 xhr.send();
xhr2 ライブラリを参照し、
XMLHttpRequest オブジェクト。リクエスト メソッドと URL を設定した後、
setProxy メソッドでプロキシ サーバーのアドレスを指定します。
xhr2 ライブラリを使用する利点は、その使用方法がブラウザの
XMLHttpRequest API と非常に似ているため、フロントエンドとバックエンドのサポートが向上することです。 -endコードの再利用。
xhr2 ライブラリを使用して実装できます。
以上がnodejsはプロキシAjaxを設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。