ホームページ >バックエンド開発 >PHPチュートリアル >PHP アプリケーションで CORS が機能しないのはなぜですか?
クロスオリジン リソース共有 (CORS) では、Web ページは、通常、異なるドメイン、ポート、またはプロトコル。ただし、デフォルトでは、セキュリティ上の理由からブラウザはそのようなリクエストを制限します。
指定されたシナリオでは、ユーザーは CORS を使用して www.siteone.com から www.sitetwo.com への POST リクエストを試みています。発生したエラーは、リクエスト ヘッダーとレスポンス ヘッダーの間に不一致があることを示唆しています。
CORS を適切に構成するには、慎重に処理することが重要です。次の PHP 関数は、より包括的なアプローチを提供します。
<code class="php">// Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { 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, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); exit(0); } echo "You have CORS!";</code>
元のコードをこの拡張機能で置き換えることにより、ユーザーは CORS 問題を正常に解決しました。このアプローチにより、必要なヘッダーがすべて適切に設定され、クロスオリジンリクエストが意図したとおりに動作できるようになります。
以上がPHP アプリケーションで CORS が機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。