ホームページ >バックエンド開発 >PHPチュートリアル >PHP アプリケーションで CORS が機能しないのはなぜですか?

PHP アプリケーションで CORS が機能しないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 04:54:02272ブラウズ

Why Is CORS Not Working in My PHP Application?

CORS が PHP で機能しない

クロスオリジン リソース共有 (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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。