Как установить тег <img> с базовой аутентификацией
Я хотел бы отобразить изображение с сетевой камеры на моей веб-странице, но изображение находится за базовым сервером аутентификации HTTP.
В Firefox и Chrome я могу это сделать:
<img width="320" height="200" src="http://username:[email protected]/Path" />
Но в Internet Explorer 8 я получаю пустое окно изображения. Если я использую JQuery для установки атрибута src, IE8 отображает пустой src. Похоже, IE8 проверяет строку и отклоняет ее.
Есть ли способ разместить базовые учетные данные аутентификации в теге img?
Ответы
Ответ 1
Нижняя строка: не все браузеры допускают это. Он может работать в некоторых, но не в других.
Но, как уже сказал кто-то еще, это не очень безопасно - вы эффективно предоставляете данные для входа и пароля всем, кто просматривает страницу. Нехорошо.
Лучшим вариантом будет прокси-сервер через тот же сервер, на котором вы предоставляете html-код, тогда href в теге <img>
может быть только локальным URL-адресом, и никто не должен знать, где находится изображение на самом деле происходит.
Ответ 2
Вы можете загрузить img
с помощью AJAX, используя XMLHttpRequest. Как вы знаете, XMLHttpRequest имеет метод setRequestHeaders
, поэтому вы сможете манипулировать заголовками для своего запроса, следовательно, вы сможете выполнять базовую HTTP-аутентификацию.
Ответ 3
Лучший способ - создать страницу входа в систему, а затем настроить перенаправление портов на вашем маршрутизаторе для отображения камеры. Имеется ли камера с веб-программным обеспечением?
Ответ 4
См. http://support.microsoft.com/kb/834489 и http://msdn.microsoft. ком/EN-US/library/т/ee330735 (v = vs .85).aspx # login_creds_urls
Короче говоря, имена пользователей/паролей формально не поддерживаются в рамках схем протокола HTTP/HTTPS, и из-за их использования в фишинг-атаках они были отключены в IE6 на XPSP2. Поддержка может быть повторно активирована пользователем с помощью переопределения реестра (FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
), но это не рекомендуется.