1.SharedArrayBuffer是什么?
SharedArrayBuffer 对象用来表示一个通用的原始二进制数据缓冲区,类似于 ArrayBuffer 对象,但它可以用来在共享内存上创建视图。MDN-SharedArrayBuffer
在浏览器环境中,SharedArrayBuffer 对象被认为是一种潜在的安全风险。为了防止 Spectre 攻击等漏洞,现代浏览器通常会禁用或限制对 SharedArrayBuffer 的使用。
2.解决方法一(常规思路)
配置COEP和COOP请求头和响应头。
2.1 响应头配置
可在Nginx中配置
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
2.2 请求头配置
在项目根html文件的head标签中配置
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp">
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin">
3.解决方法二(暴力解决-可100%解决问题)
这个方法来源于题主在Iframe嵌入网页时,已经配置了COEP和COOP头,仍然报错发现,主要思路是在谷歌浏览器快捷方式-目标位置添加相关后缀,如下图:
通过后缀**–enable-features=SharedArrayBuffer**来强制让浏览器支持SharedArrayBuffer
一定记得配置好后关闭所有谷歌浏览器窗口,点击配置后的浏览器快捷方式打开浏览器