1

当我在本地主机上运行我的 angularjs 应用程序时,我遇到了一个有线问题,它工作正常。但是当我将它托管在 IP 地址上时,它会出错

TypeError:无法读取未定义的属性“getSupportedConstraints”

这是我的代码

let mediaSourceSupport = !!navigator.mediaDevices.getSupportedConstraints()
    .mediaSource;

当在 localhost navigator.mediaDevices 对象上服务时,我得到http://prntscr.com/qpf32s 但是当主机在 IP 地址上时,它给出了 undefind

4

2 回答 2

1

您还可以启用chrome://flags/#unsafely-treat-insecure-origin-as-secure并添加您的网址。

于 2021-11-29T08:37:02.400 回答
0

当您在生产系统上运行带有 SSL 加密的 APP 时,此错误将被消除。

基于加密的安全性 getUserMedia() 方法仅在安全上下文中可用。安全上下文是浏览器有理由确信包含使用 HTTPS/TLS 安全加载的文档,并且对不安全上下文的暴露有限。如果文档未在安全上下文中加载,则 navigator.mediaDevices 属性未定义,从而无法访问 getUserMedia()。

https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia#Privacy_and_security

于 2020-05-26T07:25:11.690 回答