ホームページ >PHPフレームワーク >Swoole >クロスドメイン処理に Hyperf フレームワークを使用する方法
クロスドメイン処理に Hyperf フレームワークを使用する方法
クロスドメインとは、ブラウザがサーバーからリソースを要求するときに、同じオリジンをたどることを意味します。ユーザーデータのセキュリティを保護するためのポリシー。同一オリジン ポリシーでは、ブラウザが同じドメイン名、同じポート、同じプロトコルを持つサーバーにのみリクエストを送信できることが要求されます。ただし、場合によっては、アプリケーションが異なるドメイン名のサーバーにリソースを要求する必要があり、これにはクロスドメイン処理が必要になります。
Hyperf は、Swoole をベースにした高性能 PHP フレームワークで、強力なスケーラビリティと開発効率を提供するように設計されています。以下では、Hyperf フレームワークでクロスドメイン処理を実行する方法と具体的なコード例を紹介します。
<?php declare(strict_types=1); namespace AppMiddleware; use HyperfHttpMessageStreamSwooleStream; use PsrHttpMessageResponseInterface; use PsrHttpMessageServerRequestInterface; use PsrHttpServerMiddlewareInterface; use PsrHttpServerRequestHandlerInterface; class CorsMiddleware implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); // 设置允许跨域的域名,* 表示允许任意域名跨域 $response = $response->withHeader('Access-Control-Allow-Origin', '*'); // 设置允许的请求方法 $response = $response->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); // 设置允许的请求头 $response = $response->withHeader('Access-Control-Allow-Headers', 'Content-Type,Authorization'); // 设置是否允许带认证信息(例如cookie)的请求 $response = $response->withHeader('Access-Control-Allow-Credentials', 'true'); // 设置预检请求的缓存时间(秒) $response = $response->withHeader('Access-Control-Max-Age', '3600'); return $response; } }
<?php declare(strict_types=1); return [ 'http' => [ AppMiddlewareCorsMiddleware::class, // 其他中间件... ], ];
<?php use HyperfHttpServerRouterRouter; Router::addRoute(['OPTIONS'], '/{path:.+}', function () { return ''; });
このコードは、すべての OPTIONS リクエストをインターセプトし、空の応答を返します。
これまでに、Hyperf フレームワークでのクロスドメイン処理が完了しました。これで、アプリケーションは任意のドメイン名からのリクエストを受信し、適切なデータを返すことができるようになりました。
概要:
上記の手順を通じて、Hyperf フレームワークでクロスドメイン処理を実行する方法を理解しました。まず、クロスドメインリクエストを許可する関連リクエストヘッダー情報を設定するミドルウェアを作成しました。次に、ミドルウェアをグローバル ミドルウェア リストに登録し、OPTIONS リクエストの処理を設定しました。このようにして、アプリケーションはクロスドメインリクエストをスムーズに行うことができます。
コード例が示されており、実際のニーズに応じて変更および拡張できます。 Hyperf フレームワークの高いパフォーマンスと柔軟性により、クロスドメイン処理を含むさまざまな機能を簡単に開発できます。この記事が皆さんのお役に立てば幸いです。
以上がクロスドメイン処理に Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。