クロスドメインエラーの修正

ホストされているドメイン以外のドメインでホストされているコンテンツを Adobe Flash などのブラウザプラグインで再生する際に、しばしばアクセス許可が求められます。クロスドメインポリシーファイルは、この許可を与えるもので、コンテンツの再生を可能にするために必要であることが多々あります。このガイドでは、シンセティックな crossdomain.xml レスポンスを作成し、クロスドメインエラーを解決する方法について説明します。

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Content をクリックします。Content ページが表示されます。
  5. Set up advanced response ボタンをクリックします。Create a synthetic response ページが表示されます。

    crossdomain.xml ファイルが表示された Create a synthetic response ページ

  6. 以下の要領で Create a synthetic response フィールドに入力します。
    • Name フィールドに、人間可読なレスポンス名を入力します。例:crossdomain.xml
    • Status メニューから、クライアントに返す HTTP コードを選択します。例:200 OK
    • MIME Type フィールドに、レスポンスの MIME タイプとして text/x-cross-domain-policy を入力します。
    • Response フィールドに、リクエストに応答するための正しい形式で書かれた crossdomain.xml の内容を追加します。詳細については、クロスドメインの許容と制限 を参照してください。
  7. Create ボタンをクリックします。作成された新しいレスポンスは、レスポンスの一覧に表示されます。
  8. 新しいレスポンス名の右側にある Attach a condition リンクをクリックします。Create a new condition ウィンドウが開きます。
  9. 以下の要領で Create a new condition 設定画面の各フィールドに入力します。
    • Type メニューから、Request を選択します。
    • Name フィールドに、人間可読のレスポンス条件名を入力します。例:crossdomain.xml
    • Apply if フィールドに req.url == "/crossdomain.xml" と入力します。
  10. Save and apply to をクリックし、新しいリクエスト条件を作成します。
  11. Activate ボタンをクリックして設定変更をデプロイします。

クロスドメインの許容と制限

crossdomain.xml ポリシーファイルは、ホストされているドメイン以外のドメインにてコンテンツを再生するための権限をこれらのブラウザプラグインに与えます。このファイルは通常 crossdomain.xml という名前で、デフォルトでホストされているドメインのルートディレクトリに配置されます。このファイルを使用し、リクエストされたコンテンツを再生する際のアクセスの許容度や制限度を定義します。

以下のポリシー例では、foo.example.com および bar.example.com ドメインがデータをプルし、www.example.com ドメインが X-foo ヘッダー経由でデータをプッシュすることを許可しています。

1
2
3
4
5
6
7
8
<?xml version="1.0"?>
  <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
  <cross-domain-policy>
      <site-control permitted-cross-domain-policies="master-only"/>
      <allow-access-from domain="foo.example.com" secure="true"/>
      <allow-access-from domain="bar.example.com" secure="true"/>
      <allow-http-request-headers-from domain="www.example.com" headers="X-foo" secure="true"/>
  </cross-domain-policy>
Back to Top