このトピックでは、オリジン間リソース共有 (CORS) ルールを設定した後、CDN のアクセラレーション用ドメイン名を使用して Alibaba Cloud CDN で高速化された Object Storage Service (OSS) リソースにアクセスできなくなる問題の原因と解決策を説明します。
問題の説明
OSS コンソールで CORS ルールを設定した後、CDN のアクセラレーション用ドメイン名を使用して OSS リソースにアクセスすると失敗します。
原因
-
Alibaba Cloud CDN のポイントオブプレゼンス (POP) が、CORS を設定する前のレスポンスヘッダーをキャッシュしています。その結果、ブラウザが古いレスポンスヘッダーを受信するため、クロスオリジンリクエストが失敗します。
-
CDN のアクセラレーション用ドメイン名を許可されたオリジンとして設定しておらず、また GET、POST、DELETE などの有効なカスタムリクエストヘッダーや HTTP メソッドを指定していません。
解決策
-
Alibaba Cloud CDN コンソールにログインします。
-
[送信レスポンスヘッダーの変更] ダイアログボックスで、次の表に従って、カスタムレスポンスヘッダーと対応するヘッダー値を設定します。
説明次のパラメーター設定は参考用です。各ヘッダーの値は、ビジネス要件に合わせて変更してください。
レスポンスヘッダー
ヘッダー値
Access-Control-Allow-Origin値をアスタリスク (*) に設定し、クロスオリジン検証を有効にします。
Access-Control-Allow-MethodsPOST,GET,HEAD,PUT,DELETE
Access-Control-Max-Age3600
設定後の結果を次の図に示します。

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