Skip to content

🤖 Gemini 2.5 Flash Preview Sep 2025 | Gemini

浏览器中的 window.crypto 对象看不到 subtle 属性,最常见的原因是当前的上下文不是一个安全上下文 (Secure Context)

window.crypto.subtle 属性返回一个 SubtleCrypto 对象,该对象用于进行低级别的加密操作(Web Crypto API 的核心功能)。出于安全原因,大多数现代浏览器(如 Chrome、Firefox 等)要求这些功能只能在安全上下文中使用

安全上下文通常指:

  1. HTTPS 协议: 通过 https:// 提供的网页。

  2. localhost 127.0.0.1 在本地开发时,http://localhosthttp://127.0.0.1 通常被认为是安全的(尽管有些较新版本的 Firefox 在使用默认 HTTP 端口时可能出现问题,但一般情况下是安全的)。

  3. 其他特定的安全协议: 例如 wss(WebSocket Secure)、file:// 协议等(详见 MDN 文档中关于安全上下文的说明)。

如果你的网站是通过非 HTTPS 的 HTTP 协议提供的(例如 http://your-domain.com ),那么 window.crypto.subtle 就会是 undefined

解决方案:

  • 使用 HTTPS: 如果是部署到线上环境,请确保使用 HTTPS 来提供你的网页。

  • 使用 localhost 127.0.0.1 如果是本地开发环境,请确保通过 http://localhosthttp://127.0.0.1 访问你的应用。

  • 本地启用 HTTPS: 在本地开发时,你可以考虑为本地服务器生成自签名证书并使用 HTTPS 访问。 [^1]: stackoverflow.com

本站总访问量 次 本站访客数 人次

1111111111111111111