.htaccess で Slim PHP フレームワークの CORS を有効にする
で作成された RESTful サービスのクロスオリジン リソース共有 (CORS) を有効にするにはSLIM PHP フレームワークでは、.htaccess ファイルへの変更が一般的に使用されます。ただし、.htaccess で推奨される変更を行った後も問題が解決しない場合は、別のアプローチを採用できます。
PHP ヘッダーの使用
.htaccess で CORS ヘッダーを設定する代わりに、PHP コード、具体的にはindex.php ファイルで直接実行できます。ファイルの先頭に次のコードを追加すると、アプリケーションが受信するすべての HTTP リクエストに対して CORS ヘッダーが設定されます:
<code class="php">// Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { // should do a check here to match $_SERVER['HTTP_ORIGIN'] to a // whitelist of safe domains header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // cache for 1 day } // Access-Control headers are received during OPTIONS requests if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); }</code>
OPTIONS リクエストの処理
SLIM PHP フレームワークを使用している場合は、OPTIONS リクエストの処理も必要になる場合があります。次のルートを $app オブジェクトに追加して、OPTIONS リクエストが HTTP 200 応答を確実に受信できるようにします。
<code class="php">// return HTTP 200 for HTTP OPTIONS requests $app->map('/:x+', function($x) { http_response_code(200); })->via('OPTIONS');</code>
これらの PHP の変更により、.htaccess で CORS ヘッダーを設定する代替手段が提供されます。両方のコード ブロックをindex.php ファイルに追加すると、SLIM PHP RESTful サービスの CORS を有効にすることができます。
以上がPHP ヘッダーを使用してスリム PHP フレームワークの CORS を有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。