首页 > 解决方案 > 为什么 navigator.mediaDevices 在 localhost 和服务器中的工作方式不同?

问题描述

我目前正在做一个视频聊天项目。它使用navigator.mediaDevies. 它工作正常并在 localhost 中返回MediaDevices对象,但是当我将项目部署到服务器时,它返回undefined. 我正在使用谷歌浏览器 v77。当然,它在本地主机和服务器中都是同一个浏览器。如何navigator.mediaDevices工作?我认为它应该在同一个浏览器中返回相同的结果。但它在 localhost 和生产服务器中的工作方式不同。我应该怎么做才能在服务器中navigator.mediaDevices返回MediaDevices对象?(尝试了 Mozilla Firefox,但也没有用)

标签: javascriptbrowser

解决方案


在 localhost 上,浏览器允许减少安全措施。特别是,HTTPS 不是必需的。

对于任何其他来源,都需要 HTTPS 才能使用媒体设备 API。如果你检查你的开发者控制台,你无疑会看到一个错误显示。


推荐阅读