- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个网络摄像头,我想将快照放在网页上。如果我把它放在我的浏览器中,它会返回一个用户名和密码弹出窗口
http://CAM_IP_ADD:PORT/Streaming/Channels/1/picture
如果我输入用户名和密码,我会得到一个快照。所以我发现如果我在浏览器中输入它,它会返回一个快照
http://USERNAME:PASSWORD@CAM_IP_ADD:PORT/Streaming/Channels/1/picture
所以我想我会用这个创建一个简单的 HTML
<!DOCTYPE html>
<html>
<body>
<img src="http://USERNAME:PASSWORD@CAM_IP_ADD:PORT/Streaming/Channels/1/picture">
</body>
</html>
但它不返回图像。我如何验证它以使其正常工作?
最佳答案
您的网络摄像头正在使用基本身份验证,您可以将您的身份验证字符串添加到 url。然而,这是一个已弃用的功能 ( https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#Access_using_credentials_in_the_URL ),这可能是您的网络摄像头图片未显示的原因:浏览器不再支持该格式,至少不再支持图像链接。
首选的身份验证方法是通过以下格式的授权 header
Authorization: Basic [Username:Password]
其中 [username:password]
必须进行 base64 编码。有关详细信息,请参阅上面的链接。
所以一个简单的链接是行不通的,你必须设置自定义的 http header 。为此,您可以设置一个简单的 Web 服务器作为反向代理,或者您可以使用 javascript 发出 ajax 请求,然后将结果呈现为图像。不幸的是,所有这些都不像添加一个简单的链接那么简单。
这里有一些链接可以帮助您开始使用任一选项:
带标题的 JS 帖子
Apache 反向代理指南
https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html
您添加 url 的方式可能会在某些较旧的浏览器中工作,因此您可能想在采用干净但麻烦的做事方式之前尝试不同的浏览器
关于html - 如何在 HTML 中进行基本身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48789053/
我是一名优秀的程序员,十分优秀!