Что такое Script error.
Script error. — это «обезличенная» ошибка JavaScript, которую браузер отдает при падении кросс-доменного скрипта (или скрипта в кросс-доменном окружении — например, внутри <iframe>), когда нельзя раскрывать детали из-за политики безопасности.
Вместо реального сообщения вы видите строку Script error. и пустой stack trace.
Хоук ловит исключение, но т.к. источник — другой домен — и нет корректных настроек CORS/crossorigin, браузер блокирует доступ к исходной ошибке.
Рассмотрим наиболее частые причины:
-
Скрипт грузится с другого домена или CDN без CORS. Нет заголовка
Access-Control-Allow-Originна сервере скрипта и/или нет атрибутаcrossoriginв<script>. - Ошибка внутри кросс-доменного <iframe>.
- Ошибка внутри расширения браузера
- CSP/AdBlock ломают загрузку или выполнение ресурса кросс-доменно.
-
Настроить CORS для внешних ресурсов с помощью атрибута
crossorigin="anonymous"у тега <script> или заголовковAccess-Control-Allow-OriginиAccess-Control-Allow-Credentialsна CDN сервере. - Включите ресурсы, загружаемые с внешних источников, в сборку.
- Отфильтруйте (игнорируйте) ошибку в Хоуке
Остановимся подробнее на последнем пункте. Во многих случая исправить ошибку Scipt error. не представляется возможным. Поэтому распространенная практика — отключить отправку этой ошибки в Хоук
Для того, чтобы не отправлять нежелательные ошибки в Хоук, во всех SDK существует хук beforeSend. Он выполняется перед отправкой и с его помощью можно:
- Убрать чувствительные данные
- Полностью отменить отправку ошибки
Вторая возможность нам и нужна. Для этого нужно вернуть false в beforeSend:
Готово, вы больше не буду получать отчеты об этом событии.