ホームページ > バックエンド開発 > PHPチュートリアル > CORS リクエストが「Origin は Access-Control-Allow-Origin によって許可されていません」というメッセージで失敗するのはなぜですか?

CORS リクエストが「Origin は Access-Control-Allow-Origin によって許可されていません」というメッセージで失敗するのはなぜですか?

Linda Hamilton
リリース: 2024-11-03 09:54:29
オリジナル
777 人が閲覧しました

Why is my CORS Request Failing with

CORS が PHP で機能しない

問題の説明:

CORS (クロスオリジン) 経由でフォーム データを送信しようとしたときリソース共有) www.siteone.com から www.sitetwo.com にアクセスすると、次のエラーが発生します:

XMLHttpRequest cannot load http://www.sitetwo.com/cors.php. Origin http://www.siteone.com is not allowed by Access-Control-Allow-Origin.
ログイン後にコピー

www.sitetwo.com の cors.php で次のヘッダーを設定しているにもかかわらず:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
ログイン後にコピー

解決策:

問題は、CORS リクエスト ヘッダーの処理方法にあります。次の cors.php の更新されたコードは、CORS リクエストに対するより包括的な応答を提供します。

<code class="php"><?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);
}

// Respond to the request
echo "You have CORS!";
?></code>
ログイン後にコピー

この改訂されたコードは、あらゆるオリジンからのクロスオリジン リクエストを許可し、リクエスト メソッドとヘッダーを検証し、CORS レスポンスをキャッシュします。 OPTIONS リクエストに適切に応答します。

以上がCORS リクエストが「Origin は Access-Control-Allow-Origin によって許可されていません」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート