`Uncaught ReferenceError: SharedArrayBuffer is not defined` since Chrome 92
`Uncaught ReferenceError: SharedArrayBuffer is not defined` since Chrome 92
使用SharedArrayBuffer
导致错误:Uncaught ReferenceError: SharedArrayBuffer is not defined
on Chrome 92.这是为什么?我该如何解决?
Chrome 桌面上的 SharedArrayBuffer
在 Chrome 91 之前一直免费提供,但在 92 之后,它需要一种称为“cross-origin 隔离”的特殊状态Firefox 和 Android Chrome。要启用状态,必须发送两个安全 headers Cross-Origin-Embedder-Policy: require-corp
和 Cross-Origin-Opener-Policy: same-origin
.
Spectre caused all browsers to disable SharedArrayBuffer
but Chrome desktop could enable it again using the proprietary Site Isolation 的发现。 Chrome 92 是它转向标准化方法的版本。
如上所述,应用两个 headers 并启用“cross-origin 隔离”是可行的方法,但设置它可能需要一些时间。作为 escape-hatch,您可以请求 an origin trial 将您的网站列入许可名单,以便至少在 Chrome 96 之前继续使用 SharedArrayBuffer
而无需 cross-origin 隔离。
要了解有关 cross-origin 隔离的更多信息,请阅读:
使用SharedArrayBuffer
导致错误:Uncaught ReferenceError: SharedArrayBuffer is not defined
on Chrome 92.这是为什么?我该如何解决?
SharedArrayBuffer
在 Chrome 91 之前一直免费提供,但在 92 之后,它需要一种称为“cross-origin 隔离”的特殊状态Firefox 和 Android Chrome。要启用状态,必须发送两个安全 headers Cross-Origin-Embedder-Policy: require-corp
和 Cross-Origin-Opener-Policy: same-origin
.
Spectre caused all browsers to disable SharedArrayBuffer
but Chrome desktop could enable it again using the proprietary Site Isolation 的发现。 Chrome 92 是它转向标准化方法的版本。
如上所述,应用两个 headers 并启用“cross-origin 隔离”是可行的方法,但设置它可能需要一些时间。作为 escape-hatch,您可以请求 an origin trial 将您的网站列入许可名单,以便至少在 Chrome 96 之前继续使用 SharedArrayBuffer
而无需 cross-origin 隔离。
要了解有关 cross-origin 隔离的更多信息,请阅读: