Если кто-то попытается нарушить установленное вами правило, что вы сделаете в ответ? Отправьте ему Script error.

Но не в реальной жизни. 😉

Но в JavaScript, если вы попытаетесь нарушить ту же политику происхождения, браузер отправит вам в ответ «Ошибку сценария».

Когда возникает ошибка сценария в коде JavaScript?

Когда исключение нарушает ту же политику происхождения браузера в ответ на обратный вызов onerror, браузер отвечает «ошибкой сценария».

Политика единого источника: в соответствии с политикой единого источника браузер принимает только сценарии, размещенные на одном сервере, на двух разных веб-страницах.

В каждом браузере есть набор допустимых или, скажем, обязательных «заголовков запросов». Когда вы отправляете любой запрос на сервер, он должен содержать все необходимое для заголовка запроса. В противном случае вы столкнетесь с ошибкой скрипта.

Ну, это преднамеренное поведение браузеров, чтобы предотвратить утечку скриптов во внешние домены. Ведь никто не хочет развлекать нежелательными просьбами 😉 А вы?

Я столкнулся с ошибкой сценария в JavaScript, что мне делать?

Если вы также столкнулись с той же проблемой, воспользуйтесь этими возможными решениями.

1. Настройте HTTP-заголовок Cross-Origin

Access-Control-Allow-Origin: *

Установив Access-Control-Allow-Origin: в ‘ * ’, вы убедитесь, что можете получить доступ к ресурсу из любого домена. При необходимости вы также можете заменить «*» на конкретное доменное имя, которое, по вашему мнению, должно иметь доступ к сценарию вашего домена.

Примечание: MultipleFailureException возникает, когда Junit runner распознает множество сбоев и собирает их в один.

Существует другой способ установить его на * в разных средах.

  • Apache: создайте файл .htaccess в папке, где хранится ваш JS-файл:
Header add Access-Control-Allow-Origin "*"
  • Ngnix: добавьте директиву add_header как:
location ~ ^/assets/ {
    add_header Access-Control-Allow-Origin *;
}
  • HA Proxy: добавьте этот актив:
rspadd Access-Control-Allow-Origin:\ *

Примечание. InvalidOrderingException возникает, когда порядок выполнения тестов неверен, и junit runner не может их вызвать.

2. Установите crossorigin="anonymous"

Для каждого сценария в вашем HTML-скрипте, для которого вы установили Access-Control-Allow-Origin, установите crossorigin="anonymous"

<script src="http://another-domain.com/app.js" crossorigin="anonymous"></script>

Этот код указывает, что ваш браузер должен получить целевой файл анонимно, избегая передачи какой-либо информации, идентифицирующей пользователя, такой как учетные данные HTTP или файлы cookie, при запросе браузером.

Если вы столкнулись с какой-либо ошибкой сценария в своем коде JavaScript, надеюсь, что эта статья может оказаться полезной.