Как установить тег <img> с базовой аутентификацией

Я хотел бы отобразить изображение с сетевой камеры на моей веб-странице, но изображение находится за базовым HTTP-сервером аутентификации.

В Firefox и Chrome я могу сделать это:

<img width="320" height="200" src="http://username:[email protected]/Path" />

Но в Internet Explorer 8 я получаю пустое поле с изображением. Если я использую JQuery для установки атрибута src, IE8 отображает пустой src. Похоже, IE8 проверяет строку и отклоняет ее.

Есть ли способ поместить базовые учетные данные аутентификации в тег img?

 AgentFire06 апр. 2017 г., 20:00
Получил ту же проблему в Chrome, версия 58 лол.
 Ruel29 сент. 2010 г., 18:03
Я понял, я думал, что это будет работать как пользователь посетит страницу, чтобы войти. лол.
 Rondel04 окт. 2011 г., 17:09
Вы в конечном итоге использовали метод прокси? У меня та же проблема, и я нигде не могу найти решение
 Ruel29 сент. 2010 г., 17:55
Не было бы небезопасно делать это? Тег виден всем.
 Robert29 сент. 2010 г., 17:58
Прежде чем пользователь сможет получить доступ к этому HTML-файлу, он должен будет пройти через страницу входа.
 Stack Underflow12 июл. 2016 г., 19:08
Я просто столкнулся с этой проблемой. Я решил это используяuser3053216 ответ который делает то, что я думаю, Spudley предлагает ниже, но он предоставляет пример кода, чтобы объяснить, как это сделать.

Ответы на вопрос(4)

Решение Вопроса

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

Но, как уже сказал кто-то другой, это не очень безопасно - вы эффективно даете логин и пароль всем, кто просматривает страницу. Нехорошо.

Лучшим вариантом будет прокси-сервер через тот же сервер, с которого вы предоставляете html-код, а затем href в<img> тег может быть просто локальным URL, и никто не должен знать, откуда на самом деле происходит изображение.

 Robert29 сент. 2010 г., 18:18
«Не все браузеры позволяют это. Это может работать в некоторых, но не в других». Можете ли вы привести свой источник?
 Spudley29 сент. 2010 г., 18:32
также, чтобы уточнить: есть разница в том, как браузеры будут относиться к нему, если вы введетеname:[email protected]/path в адресной строке, если он есть в ссылке. Поскольку пароли задействованы, политика безопасности браузера вступает в игру.
 Spudley29 сент. 2010 г., 18:28
@ Роберт - нет источника; просто опыт; Некоторое время назад у меня было подобное разочарование, когда я пробовал что-то очень похожее. :) Но это говорит о том, что я могу быть устаревшим, потому что я на самом деле не пытался делать подобные вещи довольно долгое время, из-за моей другой точки зрения; то есть это не очень безопасно.

Вы можете загрузить свойimg с AJAX, используяXMLHttpRequest, Как вы, возможно, знаете, XMLHttpRequest имеетsetRequestHeaders метод, так что вы сможете манипулировать заголовками для вашего запроса, следовательно, вы сможете выполнять базовую HTTP-аутентификацию.

 Krishna sagar21 янв. 2017 г., 20:06
Можете ли вы привести пример?
 bobince29 сент. 2010 г., 18:03
Вы можете передать информацию об аутентификации в параметрахopen(), К сожалению, извлечь двоичное содержимое ответа и вставить его в узел изображения на странице не так просто.

http://support.microsoft.com/kb/834489 а такжеhttp://msdn.microsoft.com/en-us/library/ie/ee330735(v=vs.85).aspx#login_creds_urls

Короче говоря, имена пользователей и пароли формально не поддерживаются схемами протокола HTTP / HTTPS, и из-за их использования в фишинговых атаках они были отключены в IE6 на XPSP2. Поддержка может быть повторно включена пользователем вручную с помощью переопределения реестра (FEATURE_HTTP_USERNAME_PASSWORD_DISABLE) но это не рекомендуется.

а затем настроить переадресацию портов на маршрутизаторе для отображения камеры. Камера поставляется с веб-программным обеспечением?

Ваш ответ на вопрос