• /
  • ログイン
  • 無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

AJAXコールがCORSリダイレクトのエラーメッセージで失敗する

問題

リダイレクトされたAJAXコールが、CORSエラーメッセージなどで拒否されることがあります。

Access to XMLHttpRequest at 'https://my-domain-2/path' (redirected from
'https://my-domain-1/path') from origin 'https://my-website-domain' has been
blocked by CORS policy: Request header field x-newrelic-id is not allowed by
Access-Control-Allow-Headers in preflight response.

解決策

このエラーを解決するには、コードを更新して、リダイレクトによって提供される新しい URL に AJAX 呼び出しを行うようにします。詳細については、MDN の記事 CORS request external redirect not allowed を参照してください。

原因

ブラウザエージェントは、 Distributed Tracing 機能をサポートするために、発信される同一オリジンのAJAXコールに自動的にカスタムヘッダーを追加します。

AJAXコールを受信したサーバーがリダイレクトステータスコード(302など)で応答すると、ブラウザは自動的にリダイレクトされたURLに同じAJAXコールを行います。そして、この新しいURLが異なるオリジン上にあり、コールがCORSプリフライトを通過しない場合、ブラウザは上記のエラーメッセージを表示してコールに失敗します。

問題を作成する
Copyright © 2022 New Relic Inc.