在我的网页上,我整合了一个foscam网络摄像头。它像魅力一样工作,直到我将域名从http切换到https。问题似乎是您不允许从https站点与非https站点(foscam只能通过http进行通信)进行通信。如果你从安全角度考虑这个问题似乎很有意义,但我想知道是否有办法实现它
要集成网络摄像头,我使用以下脚本:
<script language="JavaScript" type="text/javascript">
function reload()
{
setTimeout('reloadImg("refresh")',10)
};
function reloadImg(id)
{
var obj = document.getElementById(id);
var date = new Date();
obj.src = "http://www.somedomain.com/snapshot.cgi?user=username&pwd=mypw&t=" + Math.floor(date.getTime()/10);
}
@endif
</script>
和
<img src="http://www.somedomain.com/snapshot.cgi?user=username&pwd=mypw&t" name="refresh" id="refresh" onload='reload(this)' onerror='reload(this)'>
这仍然有效(虽然控制台确实显示错误,如
混合内容:&#39; https://www.somedomain.nl/webcam&#39;是通过HTTPS加载的,但请求了一张不安全的图片&#39; http://www.somedomain.nl/snapshot.cgi?user=user&pwd=pass!&t=145244729934&#39;。此内容也应通过HTTPS提供。
我遇到的真正问题是控制网络摄像头的按钮。 为此,我使用如下代码:
$("#left").click(function(){
$.get( "http://www.somedomain.nl/decoder_control.cgi?command=6&user=username&pwd=pass&onestep=1",
function( data ) {});
});
这些按钮不再起作用,并在控制台中生成以下错误:
混合内容:&#39; https://www.somedomain.nl/webcam&#39;是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点&#39; http://www.somedomain.nl/decoder_control.cgi?command=2&user=someuser&pwd=pass!&onestep=1&#39;。 此请求已被阻止;内容必须通过HTTPS.send @jquery.js提供:8625jQuery.extend.ajax @jquery.js:8161jQuery。(匿名函数)@jquery.js:8306(匿名函数)@ webcam:38jQuery.event.dispatch @jquery .js:4430elemData.handle @jquery.js:4116
有什么方法吗?
答案 0 :(得分:3)
您可能应将http更改为https:
$("#left").click(function(){
$.get( "https://www.somedomain.nl/decoder_control.cgi?command=6&user=username&pwd=pass&onestep=1",
function( data ) {});
});
编辑:link:
如何使用https访问的方法: 直接在浏览器中输入https://cameraip:https port /以登录摄像机。
但此功能需要新固件:
新固件支持HTTPS,它在您登录相机时提高了安全性。