すべてのプロダクト
Search
ドキュメントセンター

:CDNによって高速化されたOSSリソースのクロスオリジンリクエストが失敗するのはなぜですか。

最終更新日:Feb 23, 2024

このトピックでは、CORSルールを設定した後、CDNによって高速化されたObject Storage Service (OSS) リソースにCDN高速化ドメイン名を使用してアクセスできないという問題の原因と解決策について説明します。

問題の説明

OSSコンソールでクロスオリジンリソース共有 (CORS) ルールを設定すると、CDN高速化ドメイン名を使用してOSSリソースにアクセスできなくなります。

原因

  • Alibaba Cloud CDNのPOP (Pop) には、CORSが設定される前にキャッシュされた元のレスポンスヘッダーがあります。 その結果、ブラウザが期限切れのレスポンスヘッダーを受信するため、クロスオリジンリクエストは失敗します。

  • CDN高速化ドメイン名を許可されたオリジンとして設定しなかったか、有効なカスタムリクエストヘッダーまたはGET、POST、DELETEなどのHTTPメソッドを指定しなかった。

解決策

  1. Alibaba Cloud CDN コンソールにログインします。

  2. 左側のナビゲーションペインで、[ドメイン名] をクリックします。

  3. [ドメイン名] ページで、管理するドメイン名を見つけ、[操作] 列の [管理] をクリックします。

  4. 左側のナビゲーションツリーで、[キャッシュ] をクリックします。 表示されるページで、[POP HTTPレスポンスヘッダー] タブをクリックします。

  5. [POP HTTPレスポンスヘッダー] タブで、[カスタマイズ] をクリックします。

  6. [POP HTTPレスポンスヘッダー] ダイアログボックスで、次の表に示すように、カスタムレスポンスヘッダーと対応するヘッダー値を設定します。

    説明

    次のパラメーター設定は参照用です。 ビジネス要件に基づいて各ヘッダーの値を変更します。

    応答ヘッダー

    ヘッダー値

    アクセス制御-許可-オリジン

    値をアスタリスク (*) に設定し、クロスオリジンリクエストの認証を有効にします。

    アクセス制御-許可-メソッド

    POST、GET、HEAD、PUT、DELETE

    アクセス制御-Max-Age

    3600

    次の図は、設定後の結果を示しています。

    image

    前のヘッダーを設定した後、POPs経由でOSSリソースにアクセスしてCORSが期待どおりに機能するようにすると、前のヘッダーがレスポンスに含まれます。 テスト結果:

    p512312.png