You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更换Web虚拟主机后原有正常运行的网络摄像头功能失效如何修复

故障原因

你的推测完全正确,故障是浏览器的混合内容安全拦截导致的:新主机全站强制走HTTPS后,你网站的页面是HTTPS协议的,但是JS里请求的摄像头图片是HTTP协议的,浏览器默认会拦截这种HTTPS页面里加载HTTP不安全资源的请求,所以图片加载失败。

可直接落地的修复方案

方案1:用代理脚本中转请求(最推荐,无兼容问题,适合不懂编码的用户操作)

不需要修改摄像头配置,只需要两步操作:

  1. 在你网站的根目录新建一个cam_proxy.php文件,写入下面的代码:
<?php
// 摄像头的原始HTTP地址
$cam_url = 'http://172.100.163.136/webcapture.jpg?command=snap&channel=1&user=viewer&password';
$ch = curl_init($cam_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$img_content = curl_exec($ch);
curl_close($ch);
// 输出图片头
header('Content-Type: image/jpeg');
// 透传摄像头返回的图片内容
echo $img_content;
?>
  1. 把你原有JS代码里的image变量值换成代理文件的HTTPS地址即可,替换后的对应代码行如下:
var image = "https://你自己的网站域名/cam_proxy.php";

注意把占位的「你自己的网站域名」替换成你实际用的域名

方案2:给摄像头配置SSL(仅适合可以操作摄像头后台的场景)

如果你能登录这个IP的摄像头管理后台,可以给摄像头配置SSL证书、开启HTTPS访问,之后直接把JS代码里的图片地址前缀从http改成https即可解决问题。但大部分民用网络摄像头不支持自定义SSL配置,所以优先选方案1。

临时测试方案(仅适合自己使用,不适合公开访客)

你自己访问网站时可以点击浏览器地址栏左侧的锁形/感叹号图标,进入站点设置,把「不安全内容」的权限调整为允许,就能正常看到摄像头画面,但这个配置只对你当前浏览器生效,其他访客访问还是看不到内容,不适合长期使用。

内容的提问来源于stack exchange,提问作者tazilon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:15:08