我想在网页上显示网络摄像头的图像,但图像位于HTTP基本身份验证服务器后面。
在Firefox和Chrome中,我可以这样做:
<img width="320" height="200" src="http://username:password@server/Path" />
但是在Internet Explorer 8中,我得到一个空的图像框。如果我使用JQuery设置src属性,IE8会显示一个空白的src。看起来IE8正在检查字符串并拒绝它。
有没有办法将基本身份验证凭据放在img标记中?
答案 0 :(得分:4)
底线:并非所有浏览器都允许此操作。它可能适用于某些人,但不适用于其他人。
但正如其他人已经说过的那样,它并不是非常安全 - 您可以有效地向浏览该页面的任何人提供登录名和密码详细信息。不好。
更好的选择是通过您提供html代码的同一服务器代理它,然后<img>
标记中的href可能只是一个本地URL,而且没有人需要知道图像实际上来自。
答案 1 :(得分:3)
您可以使用XMLHttpRequest使用AJAX加载img
。您可能知道,XMLHttpRequest有一个setRequestHeaders
方法,因此您可以操作请求的标头,因此,您将能够进行基本的HTTP身份验证。
答案 2 :(得分:1)
最好的方法是创建登录页面,然后在路由器上设置端口转发以显示摄像头。相机是否附带网络软件?
答案 3 :(得分:0)
请参阅http://support.microsoft.com/kb/834489和http://msdn.microsoft.com/en-us/library/ie/ee330735(v=vs.85).aspx#login_creds_urls
长话短说,HTTP / HTTPS协议方案不正式支持用户名/密码,由于它们用于网络钓鱼攻击,它们在XPSP2上的IE6中被禁用。用户可以使用注册表覆盖(FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
)手动重新启用支持,但不建议这样做。