Web 開発では、クロスドメイン リクエストがよくある問題です。これは、ブラウザーには異なるドメイン名間のリクエストに対して厳しい制限があるためです。たとえば、Web サイト B がクロスドメイン リクエストを許可しない限り、Web サイト A のフロントエンド コードは Web サイト B の API にリクエストを直接送信できません。この問題を解決するために、CORS (Cross-Origin Resource Sharing) テクノロジーが登場しました。この記事では、PHP-Slim フレームワークで CORS クロスドメイン リクエストを使用する方法を紹介します。
1. CORS とは
CORS は、対応する HTTP ヘッダーに追加情報を追加することで、ブラウザーがクロスドメイン リクエストを送信するときにどのリクエストを行うかを指示するメカニズムです。 。通常、ブラウザは、クロスオリジンリクエストを送信するときに、どのリクエストが許可されているかを理解するために OPTIONS リクエストを送信します。サーバーはこのリクエストに応答し、応答ヘッダーでどのリクエストが許可されるかをブラウザに伝える必要があります。
2. PHP-Slim フレームワークでの CORS の使用
PHP-Slim フレームワークは、RESTful API の構築に使用される軽量の PHP フレームワークです。以下では、PHP-Slim フレームワークで CORS クロスドメイン リクエストを使用する方法を紹介します。
CORS を使用するには、PHP-Slim フレームワークに Slim-cors というミドルウェアをインストールする必要があります。応答ヘッダーを非常に簡単に追加できます。
composer を使用して、slim-cors ミドルウェアをインストールできます。次のコマンドを実行するだけです:
composer require tuupola/slim-cors:^1.1
これにより、slim-cors ミドルウェアがプロジェクトに追加されます。
Slim アプリケーションに CORS ミドルウェアを登録するのは非常に簡単です。アプリケーションにミドルウェアとして登録するだけです。
まず、CORS ミドルウェアを導入する必要があります:
use TuupolaMiddlewareCorsMiddleware;
次に、それをアプリケーションのミドルウェアとして登録する必要があります:
$app->add(new CorsMiddleware([ "origin" => ["*"], "allowMethods" => ["GET", "POST", "PUT", "PATCH", "DELETE"], "allowHeaders" => ["Content-Type", "Authorization"] ]));
上記のコードでは、 CORS ミドルウェアを Slim アプリケーションに追加し、いくつかのオプションを設定しました。上の例では、任意のオリジンからのリクエストを許可し、GET、POST、PUT、PATCH、および DELETE メソッドによるリクエストのみを許可し、2 つのリクエスト ヘッダー Content-Type と Authorization を許可します。必要に応じてこれらのオプションを変更できます。
これで、CORS を処理できる Slim アプリケーションを作成できました。
上記の手順を完了すると、クライアントはクロスドメイン リクエストを API に送信できるようになります。クライアント要求には Origin ヘッダーが含まれ、返される応答ヘッダーには Access-Control-Allow-Origin ヘッダーが含まれます。たとえば、jQuery を使用した POST リクエストの例を次に示します。
$.ajax({ method: 'POST', url: 'https://example.com/api', data: { name: 'John Doe' }, success: function(response) { console.log(response); } });
サーバーが CORS リクエストを正しく処理した場合、このリクエストは正常に実行されます。
概要:
PHP-Slim フレームワークで CORS クロスドメイン リクエストを使用するのは非常に簡単です。 Slim-Cors ミドルウェアを使用し、ニーズに応じてセットアップするだけです。これにより、API をさまざまなアプリケーション、デバイス、プラットフォームに拡張できるようになります。
ただし、CORS は Web ブラウザーのセキュリティ ポリシーにのみ適用されることに注意してください。 Web ブラウザから API にアクセスする必要がない場合は、他のよりシンプルで効率的なクロスドメイン テクノロジを使用することをお勧めします。
以上がPHP-Slim フレームワークで CORS クロスドメイン リクエストを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。