Created attachment 19285 [details] Скриншот ошибки авторизации Здравствуйте, уважаемые коллеги! Возникла проблема при попытке интеграции библиотеки "alterator-bro" с Alterator при разработке нового модуля. Делаю модуль, для которого требуется использование данной библиотеки. Структура файлов: Файл `index.html` расположен: `/usr/share/alterator/ui/iec104` (В нем подключены `bro.js` и мой `iec104.js`). Код `index.html`: ```html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html wf="none"> <head> <link type="text/css" rel="stylesheet" href="/design/styles/iec104.css" /> <script src="/design/scripts/bro.js"></script> <script src="/design/scripts/iec104.js"></script> <title>Протокол МЭК 104</title> </head> <body> <!-- Содержимое модуля --> </body> </html> ``` * Файлы `bro.js` и `iec104.js` расположены: `/usr/share/alterator/design/scripts` * Файл бэкенда `iec104` расположен: `/usr/lib/alterator/backend3` * Файл `ajax.scm` (из `alterator-bro`) расположен: `/usr/share/alterator/ui/bro` Проблема: При загрузке страницы модуля `index.html` в браузере возникают ошибки (см.скриншот). Консоль браузера показывает пустой `Response` для AJAX-запросов, инициируемых библиотекой `bro.js`. Конкретная ошибка в коде `bro.js` (строка 150): Исходя из кода (150 строка): function bro_login (data, callback) { 116 if (!data) data = {}; 117 var xhr = new XMLHttpRequest (); 118 xhr.open ("POST", AHTTPD_PREFIX + 119 "/login?ajax=commit-login&continue=%2f&msienocache=" + Math.random(), 120 true); 121 xhr.onreadystatechange = function () { 122 if (this.readyState == XMLHttpRequest.DONE) { 123 var self = this; 124 _bro_handle_message (self, function (resp) { 125 if (!resp || !resp.error) { 126 var session_cookie = BRO_GET_SESSION_COOKIE.exec (self.responseText); 127 var session_token = BRO_GET_SESSION_TOKEN.exec (self.responseText); 128 if (session_cookie && session_cookie[1]) { 129 resp = { 130 session : { 131 session_cookie : session_cookie[1], 132 session_token : (session_token && 133 session_token[1] ? 134 session_token[1] : 135 null) 136 } 137 }; 138 if (data.max_age == null) 139 data.max_age = BRO_MAX_AGE_DEFAULT; 140 if (data.max_age) { 141 document.cookie = "session=" + 142 resp.session.session_cookie + 143 ";path=/;" + 144 ";max-age=" + data.max_age + 145 ";secure"; 146 } 147 } else { 148 resp = { 149 error : { 150 message : "Sorry, bro, unexpected login response", 151 responseText : self.responseText, 152 code : 8 153 } 154 }; 155 } 156 } не получается извлечь session_cookie. По какой причине пока не ясно. В функции `bro_login` (строки 116-156) не удается извлечь `session_cookie`. Возникает ошибка: `message : "Sorry, bro, unexpected login response"` (строка 150 файла `bro.js`). Вопросы: 1. Правильно ли расположены файлы библиотеки `alterator-bro` и моего модуля с точки зрения Alterator? 2. Возможно ли использовать библиотеку `alterator-bro` напрямую с Alterator, НЕ используя Nginx или другой какой-либо внешний веб-сервер, или же для работы `bro.js` требуется наличие такого сервера для корректной обработки AJAX-запросов и сессий? 3. Какова может быть причина "unexpected login response" и пустых ответов (Response) для AJAX-запросов? Прошу подсказать правильный подход к интеграции и устранению данной проблемы.