HTTP リクエストを行うとき、OPTIONS と呼ばれるリクエストが発生することがあります。これは、実際のリクエストを送信する前にサーバーがリクエストを許可するかどうかを確認するために使用されるプリフライトリクエストです。この種のリクエストは GET や POST のような通常のリクエストではないため、サーバー側の処理で問題が発生することがあります。この記事では、Node.js を使用して OPTIONS リクエストを処理する方法について説明します。
OPTIONS リクエストとは何ですか?
OPTIONS リクエストは、サーバーが特定のクロスドメインリクエストを許可するかどうかを確認するために使用される HTTP リクエストです。 XMLHttpRequest オブジェクトまたは Fetch API を使用してクロスドメイン リクエストを送信する場合、ブラウザはまず OPTIONS リクエストを送信して、サーバーがリクエストをサポートしているかどうかを確認します。サーバーから応答が受信されない場合、ブラウザはリクエストの送信を拒否します。
OPTIONS リクエストを処理する手順
OPTIONS リクエストを処理する前に、まずクロスドメイン リクエストを処理する一般的な方法を理解します。一般的に使用される方法には、CORS (Cross-Origin Resource Sharing) や JSONP (パディング付き JSON) などがあります。次に、CORS を使用して OPTIONS リクエストを処理します。
CORS は、ブラウザとサーバー間のクロスドメイン通信に使用される標準の HTTP リクエスト ヘッダーです。 Access-Control-Allow-Origin や Access-Control-Allow-Methods などの CORS ヘッダーを設定すると、特定のドメイン名へのクロスドメイン アクセスを許可または制限できます。次に、Node.js アプリケーションに CORS ヘッダーを追加する方法を紹介します。
まず、Express フレームワークをインストールする必要があります。次のコマンドを使用してインストールできます:
npm install express
次に、サーバーを作成する必要があります。 Express サーバーは、次のコードを使用して作成および起動できます:
const express = require('express'); const app = express(); app.listen(8080, () => { console.log(`Server is listening on port 8080`); });
express では、use メソッドを使用してあらゆるタイプのルーティングを処理できます。 。 OPTIONS リクエストを処理する前に、サーバーが適切に実行されているかどうかをテストするための基本ルートを作成しましょう:
app.use('/', (req, res) => { res.send('Hello World!'); });
次に、OPTIONS リクエストを処理する必要があります。以下は基本的な例です。
app.use('*', (req, res, next) => { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With'); // 跨域请求CORS前置验证时,会发出OPTIONS请求 if (req.method === 'OPTIONS') { res.status(200).end(); } else { next(); } });
ここでは、Express の use メソッドを使用してすべてのルートを処理します。 Access-Control-Allow-Origin、Access-Control-Allow-Methods、および Access-Control-Allow-Headers の 3 つの CORS ヘッダーを設定します。 OPTIONS リクエストを処理するとき、サーバーは 200 OK レスポンスを返す必要があります。他の HTTP リクエストは、next() メソッドを使用して次のルート ハンドラーに渡す必要があります。
これらは、Node.js を使用して OPTIONS リクエストを処理するための基本的な手順です。
結論
OPTIONS リクエストは、サーバーが特定のクロスドメイン リクエストを許可するかどうかを確認するために使用されるプリフライト リクエストです。これは通常のリクエストではないため、サーバー側で特別に処理する必要があります。この記事では、Node.js で CORS を使用して OPTIONS リクエストを処理する方法について説明しました。 OPTIONS リクエストが発生した場合は、ブラウザが実際のリクエストを処理できるように、必ず 200 OK レスポンスを返してください。
以上がNodejs はオプション要求を処理しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。