我遇到了一个问题,SAB(SharedArrayBuffer)不能在跨域环境中工作。目标IFrame的源在另一个域中,我在主机文件(Windows操作系统)中添加了别名。我通过postMessage向IFrame发送SAB,但它根本就不发送或接收。如果IFrame的源如下所示:“./frames/frame.html”,SAB就神奇地开始工作了。怎样才能让SAB跨域工作呢?
我正在使用谷歌浏览器,在控制台窗口中,它不显示错误。当使用Firefox时,它提供此错误:无法将包含共享内存对象的消息发送到跨源窗口。
网站使用标题为的webpack托管:
Cross-Origin-Opener-Policy : same-origin
Cross-Origin-Embedder-Policy : require-corp
1条答案
按热度按时间nuypyhwy1#
如果您的跨域环境由同一父域的子域组成(例如
one.domain.com
和two.domain.com
),甚至sub.domain.com
和domain.com
,那么这将精确显示您需要在每个域上设置哪些标头:https://stackoverflow.com/a/74923275/7326344In the iframe's .htaccess (on sub.domain.com) I needed:
In the root document's .htaccess (on domain.com) I needed: