Фон
Несколько лет назад возникла проблема с тегами сценария
onerror
и перекрестного происхождения, подробнее об этом.Основные браузеры исправили проблему.
Зная, что это проблема с обнаружением ошибок на стороне клиента из сценариев CDNed, они несколько ослабили эти ограничения (firefox, webkit)
Актуальный вопрос
Я размещаю простую страницу на localhost и включаю скрипт из другого домена (например, sitea), вот как выглядит HTML:
<html>
<head>
<script>window.onerror = function(e, f, g) { console.log('err',e,f,g) }</script>
</head>
<body><h2>test</h2>
<script src='http://siteA:8081/one.js' crossorigin='anonymous'></script>
</body>
</html>
Сценарий на siteA
делает следующее:
var foo; foo.bar;
Очевидно, что это произойдет, поскольку bar не определен.
К сожалению, я все еще получаю "Ошибка сценария" в строке 0, как описано в билетах.
Обратите внимание, что я:
Установка атрибута crossdomain.
Видя заголовок "Origin" в запросе
Установка заголовка Access-Control-Allow-Origin на «*» и просмотр его в веб-инструментах разработки.
Пробовал и в firefox, и в хроме, не работает. У кого-нибудь есть идея, почему?