jQuery $ .get来自https网站的http

时间:2016-01-10 17:41:54

标签: javascript jquery ajax ssl cross-domain

在我的网页上,我整合了一个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

有什么方法吗?

1 个答案:

答案 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,它在您登录相机时提高了安全性。