Ошибка загрузки скрипта script error for


13 мая 2019 00:40 #12150
от bugzi

в ЭБ росказна и СУФД все понятно. пришло время к ЭБ минфин. машинка где все работает для тех ЛК не пускает на ЭБ минфин. хром и мазила ругается на ssl, IE11 крутит и все. кто чем поможет


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 03:21 #12151
от Wmffre

Если ЭБ минфин — это ssl.budgetplan.minfin.ru, то

  1. Заходить по ссылке с https .
  2. Заходить можно только через браузеры, поддерживающие ГОСТ-шифрование.
  3. _https://ssl.budgetplan.minfin.ru должен быть добавлен в Надёжные узлы в Internet Explorer 11.
  4. В Internet Explorer 11 не должен быть включён прокси (так как Континент TLS Клиент для входа не используется), а также убраны галочки TLS 1.1 и TLS 1.2.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 16:1513 мая 2019 16:15 #12176
от Blaze

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 21:14 #12178
от bugzi

Wmffre пишет: Если ЭБ минфин — это ssl.budgetplan.minfin.ru, то

  1. Заходить по ссылке с https .
  2. Заходить можно только через браузеры, поддерживающие ГОСТ-шифрование.
  3. _https://ssl.budgetplan.minfin.ru должен быть добавлен в Надёжные узлы в Internet Explorer 11.
  4. В Internet Explorer 11 не должен быть включён прокси (так как Континент TLS Клиент для входа не используется), а также убраны галочки TLS 1.1 и TLS 1.2.

а как же тогда тогда будет работать ЭБ казначейства? он настроен у меня на хром, а хром черпает из IE11 настройки а эти TLS нужны для ЭБ казны:(


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 21:17 #12179
от bugzi


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


14 мая 2019 00:1614 мая 2019 00:21 #12180
от Wmffre

bugzi пишет:

Wmffre пишет: Если ЭБ минфин — это ssl.budgetplan.minfin.ru, то

  1. Заходить по ссылке с https .
  2. Заходить можно только через браузеры, поддерживающие ГОСТ-шифрование.
  3. _https://ssl.budgetplan.minfin.ru должен быть добавлен в Надёжные узлы в Internet Explorer 11.
  4. В Internet Explorer 11 не должен быть включён прокси (так как Континент TLS Клиент для входа не используется), а также убраны галочки TLS 1.1 и TLS 1.2.

а как же тогда тогда будет работать ЭБ казначейства? он настроен у меня на хром, а хром черпает из IE11 настройки а эти TLS нужны для ЭБ казны:(

  1. Можно настроить прокси в Internet Explorer 11 через сценарий автоматической настройки wpad.dat (открывается обычным блокнотом, прокси в файле указан 127.0.0.1 порт 8080). Перед этим для Internet Explorer 11 необходимо импортировать в реестр приложенный reg-файл EnableLegacyAutoProxyFeatures_1.reg (если в Windows включён контроль учетных записей, то после импорта необходимо также перезагрузиться). Если файл wpad.dat положить в папку C:Windows , то какие пути для сценария указывать для конкретного браузера указаны в файле «пути к сценарию автоматической настройки прокси в браузерах.txt«. Прокси через сценарий будет срабатывать только для тех случаев, когда в адресной строке будут указываться lk.budget.gov.ru или lk2012.budget.gov.ru
  2. Для Google Chrome в настройках ярлыка можно указывать либо прокси, либо также путь к сценарию автоматической настройки (путь указан в файле «пути к сценарию автоматической настройки прокси в браузерах.txt«.

Спасибо сказали: sedkazna, bugzi

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


14 мая 2019 01:1514 мая 2019 04:33 #12181
от bugzi

спасибо попробую.отпишусь по результату.
хотя я пробовал в IE11 в исключение добавлять ssl.budgetplan.minfin.ru
но ошибка появлялась при срабатывании TLS, IE11 тупо крутит и ничего не говорит, а хром выплевывает ошибку после вкл TLS в IE11. в итоге после шаманства вернул как было, и написал сюда.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


14 мая 2019 07:49 #12184
от Alex67

bugzi пишет: спасибо попробую.отпишусь по результату.

Если ставить тлс клиент 2.0 то никакой прокси в настройках браузера (за исключением некоторых особых случаев) вообще не нужен же.
А для сертов ГОСТ 2012 ставить его придётся всё равно



«Кто людям помогает — лишь тратит время зря. Хорошими делами прославиться нельзя» (с) Шапокляк

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 мая 2019 00:45 #12242
от bugzi

делаю по другому, сделал одну машину чисто для ЭБ минфина и СУФД


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 мая 2019 01:22 #12243
от bugzi

СУФД и ЭБ минфин на 1 машине работает без проблем. тест прошел.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 02:0422 мая 2019 02:05 #12344
от bugzi


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 03:2022 мая 2019 03:30 #12345
от bugzi

Script error for «SignBrowserPlugin/js/es6-promise.min», needed by: SignBrowserPlugin/js/CheckApi.Npapi requirejs.org/docs/errors.html#scripterror

где чего почистить надо, понять не могу…. всё удалил, вплоть до крипты… по новой залепил. один хрен. плагин свежий.

вся эта дрянь в IE11. в хроме и мозиле совсем не запускается.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 07:54 #12348
от Alex67



«Кто людям помогает — лишь тратит время зря. Хорошими делами прославиться нельзя» (с) Шапокляк

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 21:28 #12368
от bugzi

я согласился бы, если б ошибка вылезла в «лисе», а так как ошибка вылазит в IE11 то пока странно, как минимум.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

I am using requireJS to load xchart.js that depends on d3.js, and I keep on having this message error Uncaught Error: Script error for: d3

    require({
        paths:{
            'd3': 'vendor/charts/d3.min',
            'charter': 'vendor/charts/xcharts.min'
        }
    },['js/vendor/charts/charter.js'],function(App){
        App.initial_charter();
    });

and in js/vendor/charts/charter.js, I put

define(['d3','charter'],function(){
        function initial_charter(){
            ...
}return{
            initial_charter: initial_charter
        }
    }
);

so I tried

require(['js/vendor/charts/d3.min.js'],function(){
        require({
            paths:{
                'charter': 'vendor/charts/xcharts.min'
            }
        },['js/vendor/charts/charter.js'],function(App){
            App.initial_charter();
        });
    });

and I still get the same error message

Update : I didn’t change anything and now in my console xChart is not defined
Rmk : I find requireJS really unstable, is it me or known ?


13 мая 2019 00:40 #12150
от bugzi

в ЭБ росказна и СУФД все понятно. пришло время к ЭБ минфин. машинка где все работает для тех ЛК не пускает на ЭБ минфин. хром и мазила ругается на ssl, IE11 крутит и все. кто чем поможет


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 03:21 #12151
от Wmffre

Если ЭБ минфин — это ssl.budgetplan.minfin.ru, то

  1. Заходить по ссылке с https .
  2. Заходить можно только через браузеры, поддерживающие ГОСТ-шифрование.
  3. _https://ssl.budgetplan.minfin.ru должен быть добавлен в Надёжные узлы в Internet Explorer 11.
  4. В Internet Explorer 11 не должен быть включён прокси (так как Континент TLS Клиент для входа не используется), а также убраны галочки TLS 1.1 и TLS 1.2.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 16:1513 мая 2019 16:15 #12176
от Blaze

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 21:14 #12178
от bugzi

Wmffre пишет: Если ЭБ минфин — это ssl.budgetplan.minfin.ru, то

  1. Заходить по ссылке с https .
  2. Заходить можно только через браузеры, поддерживающие ГОСТ-шифрование.
  3. _https://ssl.budgetplan.minfin.ru должен быть добавлен в Надёжные узлы в Internet Explorer 11.
  4. В Internet Explorer 11 не должен быть включён прокси (так как Континент TLS Клиент для входа не используется), а также убраны галочки TLS 1.1 и TLS 1.2.

а как же тогда тогда будет работать ЭБ казначейства? он настроен у меня на хром, а хром черпает из IE11 настройки а эти TLS нужны для ЭБ казны:(


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


13 мая 2019 21:17 #12179
от bugzi


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


14 мая 2019 00:1614 мая 2019 00:21 #12180
от Wmffre

bugzi пишет:

Wmffre пишет: Если ЭБ минфин — это ssl.budgetplan.minfin.ru, то

  1. Заходить по ссылке с https .
  2. Заходить можно только через браузеры, поддерживающие ГОСТ-шифрование.
  3. _https://ssl.budgetplan.minfin.ru должен быть добавлен в Надёжные узлы в Internet Explorer 11.
  4. В Internet Explorer 11 не должен быть включён прокси (так как Континент TLS Клиент для входа не используется), а также убраны галочки TLS 1.1 и TLS 1.2.

а как же тогда тогда будет работать ЭБ казначейства? он настроен у меня на хром, а хром черпает из IE11 настройки а эти TLS нужны для ЭБ казны:(

  1. Можно настроить прокси в Internet Explorer 11 через сценарий автоматической настройки wpad.dat (открывается обычным блокнотом, прокси в файле указан 127.0.0.1 порт 8080). Перед этим для Internet Explorer 11 необходимо импортировать в реестр приложенный reg-файл EnableLegacyAutoProxyFeatures_1.reg (если в Windows включён контроль учетных записей, то после импорта необходимо также перезагрузиться). Если файл wpad.dat положить в папку C:Windows , то какие пути для сценария указывать для конкретного браузера указаны в файле «пути к сценарию автоматической настройки прокси в браузерах.txt«. Прокси через сценарий будет срабатывать только для тех случаев, когда в адресной строке будут указываться lk.budget.gov.ru или lk2012.budget.gov.ru
  2. Для Google Chrome в настройках ярлыка можно указывать либо прокси, либо также путь к сценарию автоматической настройки (путь указан в файле «пути к сценарию автоматической настройки прокси в браузерах.txt«.

Спасибо сказали: sedkazna, bugzi

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


14 мая 2019 01:1514 мая 2019 04:33 #12181
от bugzi

спасибо попробую.отпишусь по результату.
хотя я пробовал в IE11 в исключение добавлять ssl.budgetplan.minfin.ru
но ошибка появлялась при срабатывании TLS, IE11 тупо крутит и ничего не говорит, а хром выплевывает ошибку после вкл TLS в IE11. в итоге после шаманства вернул как было, и написал сюда.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


14 мая 2019 07:49 #12184
от Alex67

bugzi пишет: спасибо попробую.отпишусь по результату.

Если ставить тлс клиент 2.0 то никакой прокси в настройках браузера (за исключением некоторых особых случаев) вообще не нужен же.
А для сертов ГОСТ 2012 ставить его придётся всё равно



«Кто людям помогает — лишь тратит время зря. Хорошими делами прославиться нельзя» (с) Шапокляк

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 мая 2019 00:45 #12242
от bugzi

делаю по другому, сделал одну машину чисто для ЭБ минфина и СУФД


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 мая 2019 01:22 #12243
от bugzi

СУФД и ЭБ минфин на 1 машине работает без проблем. тест прошел.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 02:0422 мая 2019 02:05 #12344
от bugzi


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 03:2022 мая 2019 03:30 #12345
от bugzi

Script error for «SignBrowserPlugin/js/es6-promise.min», needed by: SignBrowserPlugin/js/CheckApi.Npapi requirejs.org/docs/errors.html#scripterror

где чего почистить надо, понять не могу…. всё удалил, вплоть до крипты… по новой залепил. один хрен. плагин свежий.

вся эта дрянь в IE11. в хроме и мозиле совсем не запускается.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 07:54 #12348
от Alex67



«Кто людям помогает — лишь тратит время зря. Хорошими делами прославиться нельзя» (с) Шапокляк

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


22 мая 2019 21:28 #12368
от bugzi

я согласился бы, если б ошибка вылезла в «лисе», а так как ошибка вылазит в IE11 то пока странно, как минимум.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

I am using requireJS to load xchart.js that depends on d3.js, and I keep on having this message error Uncaught Error: Script error for: d3

    require({
        paths:{
            'd3': 'vendor/charts/d3.min',
            'charter': 'vendor/charts/xcharts.min'
        }
    },['js/vendor/charts/charter.js'],function(App){
        App.initial_charter();
    });

and in js/vendor/charts/charter.js, I put

define(['d3','charter'],function(){
        function initial_charter(){
            ...
}return{
            initial_charter: initial_charter
        }
    }
);

so I tried

require(['js/vendor/charts/d3.min.js'],function(){
        require({
            paths:{
                'charter': 'vendor/charts/xcharts.min'
            }
        },['js/vendor/charts/charter.js'],function(App){
            App.initial_charter();
        });
    });

and I still get the same error message

Update : I didn’t change anything and now in my console xChart is not defined
Rmk : I find requireJS really unstable, is it me or known ?

Загрузка ресурсов: onload и onerror

Браузер позволяет отслеживать загрузку сторонних ресурсов: скриптов, ифреймов, изображений и др.

Для этого существуют два события:

  • load — успешная загрузка,
  • error — во время загрузки произошла ошибка.

Загрузка скриптов

Допустим, нам нужно загрузить сторонний скрипт и вызвать функцию, которая объявлена в этом скрипте.

Мы можем загрузить этот скрипт динамически:

let script = document.createElement('script');
script.src = "my.js";

document.head.append(script);

…Но как нам вызвать функцию, которая объявлена внутри того скрипта? Нам нужно подождать, пока скрипт загрузится, и только потом мы можем её вызвать.

Для наших собственных скриптов мы можем использовать [JavaScript-модули](info:modules), но они не слишком широко распространены в сторонних библиотеках.

script.onload

Главный помощник — это событие load. Оно срабатывает после того, как скрипт был загружен и выполнен.

Например:

let script = document.createElement('script');

// мы можем загрузить любой скрипт с любого домена
script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.3.0/lodash.js"
document.head.append(script);

*!*
script.onload = function() {
  // в скрипте создаётся вспомогательная переменная с именем "_"
  alert(_.VERSION); // отображает версию библиотеки
};
*/!*

Таким образом, в обработчике onload мы можем использовать переменные, вызывать функции и т.д., которые предоставляет нам сторонний скрипт.

…А что если во время загрузки произошла ошибка? Например, такого скрипта нет (ошибка 404), или сервер был недоступен.

script.onerror

Ошибки, которые возникают во время загрузки скрипта, могут быть отслежены с помощью события error.

Например, давайте запросим скрипт, которого не существует:

let script = document.createElement('script');
script.src = "https://example.com/404.js"; // такого файла не существует
document.head.append(script);

*!*
script.onerror = function() {
  alert("Ошибка загрузки " + this.src); // Ошибка загрузки https://example.com/404.js
};
*/!*

Обратите внимание, что мы не можем получить описание HTTP-ошибки. Мы не знаем, была ли это ошибка 404 или 500, или какая-то другая. Знаем только, что во время загрузки произошла ошибка.

Обработчики `onload`/`onerror` отслеживают только сам процесс загрузки.

Ошибки обработки и выполнения загруженного скрипта ими не отслеживаются. Чтобы "поймать" ошибки в скрипте, нужно воспользоваться глобальным обработчиком `window.onerror`.

Другие ресурсы

События load и error также срабатывают и для других ресурсов, а вообще, для любых ресурсов, у которых есть внешний src.

Например:

let img = document.createElement('img');
img.src = "https://js.cx/clipart/train.gif"; // (*)

img.onload = function() {
  alert(`Изображение загружено, размеры ${img.width}x${img.height}`);
};

img.onerror = function() {
  alert("Ошибка во время загрузки изображения");
};

Однако есть некоторые особенности:

  • Большинство ресурсов начинают загружаться после их добавления в документ. За исключением тега <img>. Изображения начинают загружаться, когда получают src (*).
  • Для <iframe> событие load срабатывает по окончании загрузки как в случае успеха, так и в случае ошибки.

Такое поведение сложилось по историческим причинам.

Ошибка в скрипте с другого источника

Есть правило: скрипты с одного сайта не могут получить доступ к содержимому другого сайта. Например, скрипт с https://facebook.com не может прочитать почту пользователя на https://gmail.com.

Или, если быть более точным, один источник (домен/порт/протокол) не может получить доступ к содержимому с другого источника. Даже поддомен или просто другой порт будут считаться разными источниками, не имеющими доступа друг к другу.

Это правило также касается ресурсов с других доменов.

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

Для примера давайте возьмём мини-скрипт error.js, который состоит из одного-единственного вызова функции, которой не существует:

// 📁 error.js
noSuchFunction();

Теперь загрузим этот скрипт с того же сайта, на котором он лежит:

<script>
window.onerror = function(message, url, line, col, errorObj) {
  alert(`${message}n${url}, ${line}:${col}`);
};
</script>
<script src="/article/onload-onerror/crossorigin/error.js"></script>

Мы видим нормальный отчёт об ошибке:

Uncaught ReferenceError: noSuchFunction is not defined
https://javascript.info/article/onload-onerror/crossorigin/error.js, 1:1

А теперь загрузим этот же скрипт с другого домена:

<script>
window.onerror = function(message, url, line, col, errorObj) {
  alert(`${message}n${url}, ${line}:${col}`);
};
</script>
<script src="https://cors.javascript.info/article/onload-onerror/crossorigin/error.js"></script>

Отчёт отличается:

Детали отчёта могут варьироваться в зависимости от браузера, но основная идея остаётся неизменной: любая информация о внутреннем устройстве скрипта, включая стек ошибки, спрятана. Именно потому, что скрипт загружен с другого домена.

Зачем нам могут быть нужны детали ошибки?

Существует много сервисов (и мы можем сделать наш собственный), которые обрабатывают глобальные ошибки при помощи window.onerror, сохраняют отчёт о них и предоставляют доступ к этому отчёту для анализа. Это здорово, потому что мы можем увидеть реальные ошибки, которые случились у наших пользователей. Но если скрипт — с другого домена, то информации об ошибках в нём почти нет, как мы только что видели.

Похожая кросс-доменная политика (CORS) внедрена и в отношении других ресурсов.

Чтобы разрешить кросс-доменный доступ, нам нужно поставить тегу <script> атрибут crossorigin, и, кроме того, удалённый сервер должен поставить специальные заголовки.

Существует три уровня кросс-доменного доступа:

  1. Атрибут crossorigin отсутствует — доступ запрещён.
  2. crossorigin="anonymous" — доступ разрешён, если сервер отвечает с заголовком Access-Control-Allow-Origin со значениями * или наш домен. Браузер не отправляет авторизационную информацию и куки на удалённый сервер.
  3. crossorigin="use-credentials" — доступ разрешён, если сервер отвечает с заголовками Access-Control-Allow-Origin со значением наш домен и Access-Control-Allow-Credentials: true. Браузер отправляет авторизационную информацию и куки на удалённый сервер.
Почитать больше о кросс-доменных доступах вы можете в главе <info:fetch-crossorigin>. Там описан метод `fetch` для сетевых запросов, но политика там точно такая же.

Такое понятие как "куки" (cookies) не рассматривается в текущей главе, но вы можете почитать о них в главе <info:cookie>.

В нашем случае атрибут crossorigin отсутствовал. Поэтому кросс-доменный доступ был запрещён. Давайте добавим его.

Мы можем выбрать "anonymous" (куки не отправляются, требуется один серверный заголовок) или "use-credentials" (куки отправляются, требуются два серверных заголовка) в качестве значения атрибута.

Если куки нас не волнуют, тогда смело выбираем "anonymous":

<script>
window.onerror = function(message, url, line, col, errorObj) {
  alert(`${message}n${url}, ${line}:${col}`);
};
</script>
<script *!*crossorigin="anonymous"*/!* src="https://cors.javascript.info/article/onload-onerror/crossorigin/error.js"></script>

Теперь при условии, что сервер предоставил заголовок Access-Control-Allow-Origin, всё хорошо. У нас есть полный отчёт по ошибкам.

Итого

Изображения <img>, внешние стили, скрипты и другие ресурсы предоставляют события load и error для отслеживания загрузки:

  • load срабатывает при успешной загрузке,
  • error срабатывает при ошибке загрузки.

Единственное исключение — это <iframe>: по историческим причинам срабатывает всегда load вне зависимости от того, как завершилась загрузка, даже если страница не была найдена.

Событие readystatechange также работает для ресурсов, но используется редко, потому что события load/error проще в использовании.

Проблемы со входом на гос-сайты с сертификатом по новому ГОСТ.

29 Апрель, 2019 | крипто-про, сертификаты и прочая дичь…

Если при входе на гос сайты типа:

http://www.roskazna.ru/

https://ssl.budgetplan.minfin.ru/

https://ebudget.minfin.ru/

и т.д.

вы получаете ошибку

undefined

Ошибка загрузки скрипта: Load timeout for modules: Ioc/EAS.Container,anno,cadesplugin_api,XAdES/bundle,XAdES/signers.min,JinnSignExtensionProvider,AgreementContract/ContractsInformationRegistry/Grid,AgreementContract/ContractsInformationRegistry/EditWindow/Page,AgreementContract/ContractsInformationRegistry/VersionWindow/Page http://requirejs.org/docs/errors.html#timeout

то это означает что ваш компьютер слишком стар и его пора менять и если же если такой возможности нет то скачивайте браузер Chromium-ГОСТ — чудеснейшая палочка выручалочка (нормально работает только для х32) или можете попробовать поставить  Спутник — с комплектом Российской криптографии, работает даже на сильно забагованных системах.

    • Mismatched anonymous define() modules …§ 1
    • Load timeout for modules: …§ 2
    • Error evaluating module …§ 3
    • Module name … has not been loaded yet for context: …§ 4
    • Invalid require call§ 5
    • No define call for …§ 6
    • Script error§ 7
    • No matching script interactive for …§ 8
    • Path is not supported: …§ 9
    • Cannot use preserveLicenseComments and generateSourceMaps together§ 10
    • importScripts failed for …§ 11

    This page lists errors that are generated by RequireJS. If the following information does not fix the problem, you can ask on the RequireJS list or open an issue. In either case it is best to have an example or detailed explanation of the problem, hopefully with steps to reproduce.

    Mismatched anonymous define() modules …§ 1

    If you manually code a script tag in HTML to load a script with an anonymous define() call, this error can occur.

    If you manually code a script tag in HTML to load a script that has a few named modules, but then try to load an anonymous module that ends up having the same name as one of the named modules in the script loaded by the manually coded script tag.

    If you use the loader plugins or anonymous modules (modules that call define() with no string ID) but do not use the RequireJS optimizer to combine files together, this error can occur. The optimizer knows how to name anonymous modules correctly so that they can be combined with other modules in an optimized file.

    If you use var define; at the top of your file for jshint/jslint purposes, this will cause a problem for the optimizer because it avoids parsing files that declare a define variable, since that may indicate a script that was created by a concatenation of some scripts that use a local define.

    To avoid the error:

    • Be sure to load all scripts that call define() via the RequireJS API. Do not manually code script tags in HTML to load scripts that have define() calls in them.
    • If you manually code an HTML script tag, be sure it only includes named modules, and that an anonymous module that will have the same name as one of the modules in that file is not loaded.
    • If the problem is the use of loader plugins or anonymous modules but the RequireJS optimizer is not used for file bundling, use the RequireJS optimizer.
    • If the problem is the var define lint approach, use /*global define */ (no space before «global») comment style instead.

    Load timeout for modules: …§ 2

    Likely causes and fixes:

    • There was a script error in one of the listed modules. If there is no script error in the browser’s error console, and if you are using Firebug, try loading the page in another browser like Chrome or Safari. Sometimes script errors do not show up in Firebug.
    • The path configuration for a module is incorrect. Check the «Net» or «Network» tab in the browser’s developer tools to see if there was a 404 for an URL that would map to the module name. Make sure the script file is in the right place. In some cases you may need to use the paths configuration to fix the URL resolution for the script.
    • The paths config was used to set two module IDs to the same file, and that file only has one anonymous module in it. If module IDs «something» and «lib/something» are both configured to point to the same «scripts/libs/something.js» file, and something.js only has
      one anonymous module in it, this kind of timeout error can occur. The fix is to make sure all module ID references use the same ID (either choose «something» or «lib/something» for all references), or use map config.

    Error evaluating module …§ 3

    An error occured when the define() function was called for the module given in the error message. It is an error with the code logic inside the define function. The error could happen inside a require callback.

    In Firefox and WebKit browsers, a line number and file name will be indicated in the error. It can be used to locate
    the source of the problem. Better isolation of the error can be done by using a debugger to place a
    breakpoint in the file that contains the error.

    Module name … has not been loaded yet for context: …§ 4

    This occurs when there is a require(‘name’) call, but the ‘name’ module has not been loaded yet.

    If the error message includes Use require([]), then
    it was a top-level require call (not a require call inside a define() call) that should be using the async, callback version of require to load the code:

    //If this code is not in a define call,
    //DO NOT use require('foo'), but use the async
    //callback version:
    require(['foo'], function (foo) {
        //foo is now loaded.
    });
    

    If you are using the simplified define wrapper, make sure you have require as the first argument to the definition function:

    define(function (require) {
        var namedModule = require('name');
    });
    

    If you are listing dependencies in the dependency array, make sure that require and name are in the dependency array:

    define(['require', 'name'], function (require) {
        var namedModule = require('name');
    });
    

    In particular, the following will not work:

    //THIS WILL FAIL
    define(['require'], function (require) {
        var namedModule = require('name');
    });
    

    This fails because requirejs needs to be sure to load and execute all dependencies
    before calling the factory function above. If a dependency array is given to define(),
    then requirejs assumes that all dependencies are listed in that array, and it will
    not scan the factory function for other dependencies. So, either do not pass in the dependency array, or if using the dependency array, list all the dependencies in it.

    If part of a require() callback, all the dependencies need to be listed in the array:

    require(['require', 'name'], function (require) {
        var namedModule = require('name');
    });
    

    Be sure that require(‘name’) only occurs inside a define() definition function or a require() callback function, never in the global space by its own.

    In the RequreJS 1.0.x releases, there is a bug with having a space between the require and parens in WebKit browsers when using the simplified CommonJS wrapping (no dependency array):

    define(function (require) {
        //Notice the space between require and the arguments.
        var namedModule = require ('name');
    });
    

    The workaround is to just remove the space. This is fixed in the 2.0 code, and may be backported to the 1.0.x series if a 1.0.9 release is done.

    Invalid require call§ 5

    This occurs when there is a call like:

    require('dependency', function (dependency) {});
    

    Asynchronously loading dependencies should use an array to list the dependencies:

    require(['dependency'], function (dependency) {});
    

    No define call for …§ 6

    This occurs when enforceDefine is set to true, and a script that is loaded either:

    • Did not call define() to declare a module.
    • Or was part of a shim config that specified
      a string exports property that can be checked to verify loading, and that check failed.
    • Or was part of a shim config that did not set a string value for the exports config option.

    Or, if the error shows up only in IE and not in other browsers (which may generate a Script error, the script probably:

    • Threw a JavaScript syntax/evaluation error.
    • Or there was a 404 error in IE where the script failed to load.

    Those IE behaviors result in IE’s quirks in detecting script errors.

    To fix it:

    • If the module calls define(), make sure the define call was reached by debugging in a script debugger.
    • If part of a shim config, make sure the shim config’s exports check is correct.
    • If in IE, check for an HTTP 404 error or a JavaScript sytnax error by using a script debugger.

    This occurs when the script.onerror function is triggered in a browser. This usually means there is a JavaScript syntax error or other execution problem running the script. To fix it, examine the script that generated the error in a script debugger.

    This error may not show up in IE, just other browsers, and instead, in IE you may see the No define call for … error when you see «Script error». This is due to IE’s quirks in detecting script errors.

    No matching script interactive for …§ 8

    This error only shows up in some IE browsers. Most likely caused by loading a script that calls define() but was loaded in a plain script tag or via some other call, like an eval() of a JavaScript string.

    To avoid the error, be sure to load all scripts that call define via the RequireJS API.

    Path is not supported: …§ 9

    This error occurs when the optimizer encounters a path to a module or script which is a network path. The optimizer only allows
    building with local resources. To fix it:

    Make sure you reference the network dependency as a module name, not as a full URL, so that it can be mapped to a different
    during the build:

    //DO NOT DO THIS
    require(['http://some.domain.dom/path/to/dependency.js'],
    function (dependency) {});
    
    //Rather, do this:
    require.config({
        paths: {
            'dependency': 'http://some.domain.dom/path/to/dependency'
        }
    });
    
    require(['dependency'], function (dependency) {});
    

    If you want to include this dependency in the built/optimized file, download the JS file and in the
    build profile for the optimizer, put in a paths config that points to that local file.

    If you want to exclude that file from being included, and just need to map «dependency»
    for the build (otherwise it will not build), then use the special «empty:» paths config:

    //Inside the build profile
    {
        paths: {
            'dependency': 'empty:'
        }
    }
    

    Cannot use preserveLicenseComments and generateSourceMaps together§ 10

    In the r.js optimizer, preserveLicenseComments works as a pre- and post-processing step on a JS file. Various kinds of license comments are found, pulled out of the JS source, then that modified source is passed to the minifier. When the minifier is done, the comments are added to the top of the file by the r.js optimizer.

    However, for the minifier to accurately construct a source map, the minified source cannot be modified in any way, so preserveLicenseComments is incompatible with generateSourceMaps. generateSourceMaps was introduced in version 2.1.2 of the optimizer.

    The default for the optimizer is for preserveLicenseComments to be true. So if using generateSourceMaps, then explicitly set preserveLicenseComments to false. If you want to preserve some license comments, you can manually modify the license comments in the JS source to use the JSDoc-style @license comment. See «Annotating JavaScript for the Closure Compiler» for more information. That same format works for UglifyJS2.

    Загрузка ресурсов: onload и onerror

    Браузер позволяет отслеживать загрузку сторонних ресурсов: скриптов, ифреймов, изображений и др.

    Для этого существуют два события:

    • load — успешная загрузка,
    • error — во время загрузки произошла ошибка.

    Загрузка скриптов

    Допустим, нам нужно загрузить сторонний скрипт и вызвать функцию, которая объявлена в этом скрипте.

    Мы можем загрузить этот скрипт динамически:

    let script = document.createElement('script');
    script.src = "my.js";
    
    document.head.append(script);

    …Но как нам вызвать функцию, которая объявлена внутри того скрипта? Нам нужно подождать, пока скрипт загрузится, и только потом мы можем её вызвать.

    Для наших собственных скриптов мы можем использовать [JavaScript-модули](info:modules), но они не слишком широко распространены в сторонних библиотеках.
    

    script.onload

    Главный помощник — это событие load. Оно срабатывает после того, как скрипт был загружен и выполнен.

    Например:

    let script = document.createElement('script');
    
    // мы можем загрузить любой скрипт с любого домена
    script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.3.0/lodash.js"
    document.head.append(script);
    
    *!*
    script.onload = function() {
      // в скрипте создаётся вспомогательная переменная с именем "_"
      alert(_.VERSION); // отображает версию библиотеки
    };
    */!*

    Таким образом, в обработчике onload мы можем использовать переменные, вызывать функции и т.д., которые предоставляет нам сторонний скрипт.

    …А что если во время загрузки произошла ошибка? Например, такого скрипта нет (ошибка 404), или сервер был недоступен.

    script.onerror

    Ошибки, которые возникают во время загрузки скрипта, могут быть отслежены с помощью события error.

    Например, давайте запросим скрипт, которого не существует:

    let script = document.createElement('script');
    script.src = "https://example.com/404.js"; // такого файла не существует
    document.head.append(script);
    
    *!*
    script.onerror = function() {
      alert("Ошибка загрузки " + this.src); // Ошибка загрузки https://example.com/404.js
    };
    */!*

    Обратите внимание, что мы не можем получить описание HTTP-ошибки. Мы не знаем, была ли это ошибка 404 или 500, или какая-то другая. Знаем только, что во время загрузки произошла ошибка.

    Обработчики `onload`/`onerror` отслеживают только сам процесс загрузки.
    
    Ошибки обработки и выполнения загруженного скрипта ими не отслеживаются. Чтобы "поймать" ошибки в скрипте, нужно воспользоваться глобальным обработчиком `window.onerror`.
    

    Другие ресурсы

    События load и error также срабатывают и для других ресурсов, а вообще, для любых ресурсов, у которых есть внешний src.

    Например:

    let img = document.createElement('img');
    img.src = "https://js.cx/clipart/train.gif"; // (*)
    
    img.onload = function() {
      alert(`Изображение загружено, размеры ${img.width}x${img.height}`);
    };
    
    img.onerror = function() {
      alert("Ошибка во время загрузки изображения");
    };

    Однако есть некоторые особенности:

    • Большинство ресурсов начинают загружаться после их добавления в документ. За исключением тега <img>. Изображения начинают загружаться, когда получают src (*).
    • Для <iframe> событие load срабатывает по окончании загрузки как в случае успеха, так и в случае ошибки.

    Такое поведение сложилось по историческим причинам.

    Ошибка в скрипте с другого источника

    Есть правило: скрипты с одного сайта не могут получить доступ к содержимому другого сайта. Например, скрипт с https://facebook.com не может прочитать почту пользователя на https://gmail.com.

    Или, если быть более точным, один источник (домен/порт/протокол) не может получить доступ к содержимому с другого источника. Даже поддомен или просто другой порт будут считаться разными источниками, не имеющими доступа друг к другу.

    Это правило также касается ресурсов с других доменов.

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

    Для примера давайте возьмём мини-скрипт error.js, который состоит из одного-единственного вызова функции, которой не существует:

    // 📁 error.js
    noSuchFunction();

    Теперь загрузим этот скрипт с того же сайта, на котором он лежит:

    <script>
    window.onerror = function(message, url, line, col, errorObj) {
      alert(`${message}n${url}, ${line}:${col}`);
    };
    </script>
    <script src="/article/onload-onerror/crossorigin/error.js"></script>

    Мы видим нормальный отчёт об ошибке:

    Uncaught ReferenceError: noSuchFunction is not defined
    https://javascript.info/article/onload-onerror/crossorigin/error.js, 1:1
    

    А теперь загрузим этот же скрипт с другого домена:

    <script>
    window.onerror = function(message, url, line, col, errorObj) {
      alert(`${message}n${url}, ${line}:${col}`);
    };
    </script>
    <script src="https://cors.javascript.info/article/onload-onerror/crossorigin/error.js"></script>

    Отчёт отличается:

    Детали отчёта могут варьироваться в зависимости от браузера, но основная идея остаётся неизменной: любая информация о внутреннем устройстве скрипта, включая стек ошибки, спрятана. Именно потому, что скрипт загружен с другого домена.

    Зачем нам могут быть нужны детали ошибки?

    Существует много сервисов (и мы можем сделать наш собственный), которые обрабатывают глобальные ошибки при помощи window.onerror, сохраняют отчёт о них и предоставляют доступ к этому отчёту для анализа. Это здорово, потому что мы можем увидеть реальные ошибки, которые случились у наших пользователей. Но если скрипт — с другого домена, то информации об ошибках в нём почти нет, как мы только что видели.

    Похожая кросс-доменная политика (CORS) внедрена и в отношении других ресурсов.

    Чтобы разрешить кросс-доменный доступ, нам нужно поставить тегу <script> атрибут crossorigin, и, кроме того, удалённый сервер должен поставить специальные заголовки.

    Существует три уровня кросс-доменного доступа:

    1. Атрибут crossorigin отсутствует — доступ запрещён.
    2. crossorigin="anonymous" — доступ разрешён, если сервер отвечает с заголовком Access-Control-Allow-Origin со значениями * или наш домен. Браузер не отправляет авторизационную информацию и куки на удалённый сервер.
    3. crossorigin="use-credentials" — доступ разрешён, если сервер отвечает с заголовками Access-Control-Allow-Origin со значением наш домен и Access-Control-Allow-Credentials: true. Браузер отправляет авторизационную информацию и куки на удалённый сервер.
    Почитать больше о кросс-доменных доступах вы можете в главе <info:fetch-crossorigin>. Там описан метод `fetch` для сетевых запросов, но политика там точно такая же.
    
    Такое понятие как "куки" (cookies) не рассматривается в текущей главе, но вы можете почитать о них в главе <info:cookie>.
    

    В нашем случае атрибут crossorigin отсутствовал. Поэтому кросс-доменный доступ был запрещён. Давайте добавим его.

    Мы можем выбрать "anonymous" (куки не отправляются, требуется один серверный заголовок) или "use-credentials" (куки отправляются, требуются два серверных заголовка) в качестве значения атрибута.

    Если куки нас не волнуют, тогда смело выбираем "anonymous":

    <script>
    window.onerror = function(message, url, line, col, errorObj) {
      alert(`${message}n${url}, ${line}:${col}`);
    };
    </script>
    <script *!*crossorigin="anonymous"*/!* src="https://cors.javascript.info/article/onload-onerror/crossorigin/error.js"></script>

    Теперь при условии, что сервер предоставил заголовок Access-Control-Allow-Origin, всё хорошо. У нас есть полный отчёт по ошибкам.

    Итого

    Изображения <img>, внешние стили, скрипты и другие ресурсы предоставляют события load и error для отслеживания загрузки:

    • load срабатывает при успешной загрузке,
    • error срабатывает при ошибке загрузки.

    Единственное исключение — это <iframe>: по историческим причинам срабатывает всегда load вне зависимости от того, как завершилась загрузка, даже если страница не была найдена.

    Событие readystatechange также работает для ресурсов, но используется редко, потому что события load/error проще в использовании.

    Проблемы со входом на гос-сайты с сертификатом по новому ГОСТ.

    29 Апрель, 2019 | крипто-про, сертификаты и прочая дичь…

    Если при входе на гос сайты типа:

    http://www.roskazna.ru/

    https://ssl.budgetplan.minfin.ru/

    https://ebudget.minfin.ru/

    и т.д.

    вы получаете ошибку

    undefined

    Ошибка загрузки скрипта: Load timeout for modules: Ioc/EAS.Container,anno,cadesplugin_api,XAdES/bundle,XAdES/signers.min,JinnSignExtensionProvider,AgreementContract/ContractsInformationRegistry/Grid,AgreementContract/ContractsInformationRegistry/EditWindow/Page,AgreementContract/ContractsInformationRegistry/VersionWindow/Page http://requirejs.org/docs/errors.html#timeout

    то это означает что ваш компьютер слишком стар и его пора менять и если же если такой возможности нет то скачивайте браузер Chromium-ГОСТ — чудеснейшая палочка выручалочка (нормально работает только для х32) или можете попробовать поставить  Спутник — с комплектом Российской криптографии, работает даже на сильно забагованных системах.

      Понравилась статья? Поделить с друзьями:
    • Ошибка загрузки скриншотов в steam
    • Ошибка загрузки скина что это такое
    • Ошибка загрузки ресурсов wot blitz
    • Ошибка загрузки ресурсов alien shooter
    • Ошибка загрузки ресурса фифа мобайл