Мы пытаемся разработать встроенное решение для IP-камеры (работающее с apache2), чтобы отображать существующий локальный HTML-контент из iframe на камере, и у нас возникли некоторые проблемы со встроенной аутентификацией. Мы пытаемся решить эту проблему без внесения изменений в конфигурацию apache, поскольку она должна иметь возможность массового развертывания и может потребоваться сосуществовать с другим встроенным программным обеспечением, использующим конфигурацию apache по умолчанию.
Как наша базовая html-страница, так и целевая html-страница не требуют аутентификации, однако целевой html вызывает несколько локальных сценариев, которые запрашивают аутентификацию. Я попытался авторизовать целевую страницу (которая дает 200 без аутентификации) с помощью вызова ajax или xhr, и похоже, что авторизация не передается сценариям .js. Я также могу успешно авторизовать файлы .js, которые он пытается вызвать по отдельности, и извлечь их содержимое, однако при вызове из целевого html-файла они по-прежнему вызывают 401 и запрашивают вход в систему даже после успешной предварительной авторизации. Есть ли способ обеспечить добавление заголовков к любым последующим запросам, которые генерируются вне моего кода?
Полное решение - локально, а IP-камера работает под управлением apache2. Установки изготовителя являются настройками по умолчанию, в настоящее время для целей тестирования авторизация установлена на базовую. Я пробовал ajax-аутентификацию, XHR, отправку на основе форм, все в дайджесте и в основном, с изменением режима на камере. Мы стараемся свести к минимуму любые модификации файловой системы камеры и предпочли бы просто дополнительные файлы в этом каталоге для совместимости и развертывания. Мы также попытались предварительно авторизоваться на странице входа в базовую камеру, к которой мы можем аутентифицироваться, но все равно получаем 401 позже при попытке доступа к файлам .js.
var auth = "Basic " + Base64.encode(user+":"+pass)
$.ajax({
type: "GET",
url: url,
datatype: 'jsonp',
headers: {
"Authorization": auth
},
success: function (response) {
console.log("Auth Success");
$("html").html(response);
},
error: function() {
console.log("Auth Failed")
}
Возвращает 200, когда вызывает URL-адрес, но затем, когда загружается ответ html, в конце концов появляется 401 без заголовка без аутентификации.
Мне нужно, чтобы заголовок авторизации передавался на вызовы в пределах моего целевого URL, или чтобы найти способ перехватить 401 из вызовов, которые я не делаю напрямую, чтобы я мог аутентифицироваться.