Slim フレームワークのミドルウェアを使用してクロスドメイン リソース共有 (CORS) を設定する方法
クロスドメイン リソース共有 (CORS) は、サーバーが HTTP 応答ヘッダーに一部を設定できるようにするメカニズムです。クロスオリジン要求を許可するかどうかをブラウザーに伝えるための追加情報。フロントエンドとバックエンドが分離されている一部のプロジェクトでは、CORS メカニズムを使用して、バックエンド インターフェイスに対するフロントエンドのクロスドメイン要求を実現できます。
Slim フレームワークを使用して REST API を開発する場合、ミドルウェア (ミドルウェア) を使用して CORS 関連の HTTP 応答ヘッダーを設定し、クロスドメイン要求を許可できます。以下は、ミドルウェアを使用して Slim フレームワークで CORS を設定する方法を示す例です。
まず、CORS 関連の HTTP 応答ヘッダーを設定するカスタム ミドルウェア クラスを作成する必要があります。次の内容を含む CorsMiddleware という名前のファイルを作成します。
<?php namespace AppMiddleware; use PsrHttpMessageRequestInterface; use PsrHttpMessageResponseInterface; use PsrHttpServerMiddlewareInterface; use PsrHttpServerRequestHandlerInterface; class CorsMiddleware implements MiddlewareInterface { public function process(RequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); return $response ->withHeader('Access-Control-Allow-Origin', '*') ->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS') ->withHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); } }
上記のコードは CorsMiddleware クラスを定義し、MiddlewareInterface インターフェイスを実装します。 process メソッドでは、$handler の handle メソッドを呼び出して要求された応答オブジェクトを取得し、応答オブジェクトの withHeader メソッドを使用して、対応する CORS ヘッダー情報を設定します。
Slim フレームワークでこのミドルウェアを使用するのは非常に簡単です。アプリケーションの構成にミドルウェアを登録するだけです。アプリケーションのindex.php ファイルに、次のコードを追加します。
<?php use AppMiddlewareCorsMiddleware; use SlimFactoryAppFactory; require __DIR__ . '/../vendor/autoload.php'; $app = AppFactory::create(); // 注册CorsMiddleware中间件 $app->add(new CorsMiddleware()); // 添加路由和处理逻辑 $app->get('/', function ($request, $response, $args) { $response->getBody()->write("Hello, world!"); return $response->withHeader('Content-Type', 'text/plain'); }); $app->run();
上記のコードでは、$app->add メソッドを通じて CorsMiddleware ミドルウェアをアプリケーションに登録します。このようにして、各リクエストはこのミドルウェアによって処理され、対応する CORS 応答ヘッダーが設定されます。
これで、Slim アプリケーションを起動し、クロスオリジン リクエストを送信して、CORS が機能しているかどうかをテストできます。ブラウザの開発者ツールまたは他の HTTP リクエスト ツールを使用して、アプリケーションのルート パスに OPTIONS リクエストを送信できます。すべてが正しく設定されている場合は、HTTP 応答ヘッダーに Access-Control-Allow-Origin、Access-Control-Allow-Methods、および Access-Control-Allow-Headers フィールドが含まれていることが確認できるはずです。これにより、CORS 相互接続が可能になります。ドメインリクエスト。
上記の例を通じて、Slim フレームワークでミドルウェアを使用して CORS クロスドメイン リソース共有を設定する方法を学びました。この方法は非常にシンプルかつ柔軟で、実際のプロジェクトで必要に応じて拡張およびカスタマイズできます。フロントエンドとバックエンドを分離する現在の傾向では、この方法は非常に便利で、フロントエンドのクロスドメインリクエストの問題に対処するのに役立ちます。
以上がSlim フレームワークのミドルウェアを使用してクロスドメイン リソース共有 (CORS) を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。