スクリプトエラーはバグではなく、悪意のある攻撃に対してサイトを守るための検知機能です。サードパーティドメインからJavaScriptファイルがロードされた際に発生します。
スクリプトエラーは外部スクリプトが正常に実行されない問題があった際に発生します。
これらエラーは下記のような様々な原因により発生します。
クロスオリジンリソース共有(CORS)問題:セキュリティ上の制限により、他のドメインのサードパーティスクリプトのロードと実行をブラウザーがブロックします。
ネットワーク問題:ネットワークのタイムアウトや接続問題により、サードパーティスクリプトのロードに失敗した場合、スクリプトエラーが発生する可能性があります。
不正確な連携:サードパーティスクリプトがWebサイトやアプリケーションに正常に連携されていない場合、スクリプトエラーが発生します。誤ったスクリプトタグの配置、スクリプトロード順番の誤り、依存関係の未設定などにより発生します。
サードパーティスクリプトバグ:構文エラー、論理的エラー、その他問題によりサードパーティスクリプト自体にエラーにより、サイトのスクリプトエラーにつながります。
ブラウザー互換性問題:JavaScriptのような、すべてのブラウザー、ブラウザーバージョン、で正常に機能しないサードパーティスクリプトにより、特定のケースにおいてスクリプトエラーが発生します。
Site24x7では、window.onerror ハンドラーを使用して、カスタムなwrapperを作成してJavaScriptエラーを処理します。
しかし、Webアプリケーションのコードがアドレスバー以外のドメインにホストされているスクリプトがロードされると、 window.onerror イベントハンドラーがエラーを取得しますが、完全なスタックトレースやデバッグのためのメッセージコンテキストは取得されません。スタックトレースではSite24x7 wrapperのキャプチャのみ表示されます。
スクリプトエラーの正確なファイルとメソッドをキャプチャするため、scriptタグに次を追加してください。
<script crossorigin="anonymous" src="//another-domain.com/index.js"></script>
サードパーティドメインで、次のヘッダーをjsファイルに設定してください。
Access-Control-Allow-Origin: *
ワイルドカード「*」はすべてのサイトにクロスサイトリクエストを許可することを表します。また次のようにドメイン群を指定することもできます。
Access-Control-Allow-Origin: http://origin-domain.com