如何使用基本身份验证设置<img/>标记

时间:2010-09-29 15:52:05

标签: html authentication image

我想在网页上显示网络摄像头的图像,但图像位于HTTP基本身份验证服务器后面。

在Firefox和Chrome中,我可以这样做:

<img width="320" height="200" src="http://username:password@server/Path" />

但是在Internet Explorer 8中,我得到一个空的图像框。如果我使用JQuery设置src属性,IE8会显示一个空白的src。看起来IE8正在检查字符串并拒绝它。

有没有办法将基本身份验证凭据放在img标记中?

4 个答案:

答案 0 :(得分:4)

底线:并非所有浏览器都允许此操作。它可能适用于某些人,但不适用于其他人。

但正如其他人已经说过的那样,它并不是非常安全 - 您可以有效地向浏览该页面的任何人提供登录名和密码详细信息。不好。

更好的选择是通过您提供html代码的同一服务器代理它,然后<img>标记中的href可能只是一个本地URL,而且没有人需要知道图像实际上来自。

答案 1 :(得分:3)

您可以使用XMLHttpRequest使用AJAX加载img。您可能知道,XMLHttpRequest有一个setRequestHeaders方法,因此您可以操作请求的标头,因此,您将能够进行基本的HTTP身份验证。

答案 2 :(得分:1)

最好的方法是创建登录页面,然后在路由器上设置端口转发以显示摄像头。相机是否附带网络软件?

答案 3 :(得分:0)

请参阅http://support.microsoft.com/kb/834489http://msdn.microsoft.com/en-us/library/ie/ee330735(v=vs.85).aspx#login_creds_urls

长话短说,HTTP / HTTPS协议方案不正式支持用户名/密码,由于它们用于网络钓鱼攻击,它们在XPSP2上的IE6中被禁用。用户可以使用注册表覆盖(FEATURE_HTTP_USERNAME_PASSWORD_DISABLE)手动重新启用支持,但不建议这样做。