首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在本地主机上启用SharedArrayBuffer

在本地主机上启用SharedArrayBuffer
EN

Stack Overflow用户
提问于 2021-12-30 19:10:53
回答 2查看 1.1K关注 0票数 1

在尝试运行SharedArrayBuffer时,我一直得到一个‘ffmpeg.wasm没有定义’的错误。看来这是在组件的一侧。无论如何,我知道这是一个问题,可以克服跨源隔离。但是,我试图在本地主机上运行它,据我所知,跨源隔离无助于此。我试着遵循这个指南底部的说明,但是没有结果。我也尝试过一种改变Chrome//标志的方法,但这也是行不通的。我只需要能在浏览器里运行,但有一点麻烦。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2021-12-30 19:55:17

本地主机服务器应该提供所需的响应头:

代码语言:javascript
复制
$ curl -I http://localhost/

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

此服务器脚本为SharedArrayBuffer可用性提供了基线测试:

代码语言:javascript
复制
// $ node server.mjs

import { createServer } from 'http'

createServer((request, response) => {
  response.writeHead(200, {
    'Content-Type': 'text/html; charset=utf8',
    'Cross-Origin-Opener-Policy': 'same-origin',
    'Cross-Origin-Embedder-Policy': 'require-corp',
  })
  response.write(`<script>
    document.write(window.SharedArrayBuffer
      ? '✅ SAB available'
      : '❌ SAB unavailable'
    )
  </script>`)
  response.end()
}).listen(80)
票数 1
EN

Stack Overflow用户

发布于 2021-12-31 14:16:35

通过向页面提供以下响应头,可以使页面跨源隔离:

代码语言:javascript
复制
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

如果使用NGINX作为代理,只需将以下代码添加到要添加标题的location块中:

代码语言:javascript
复制
location some-location {
  add_header "Cross-Origin-Opener-Policy" "same-origin";
  add_header "Cross-Origin-Embedder-Policy" "require-corp";     
}

或者更简单一些,您可以使用此页面中的令牌来启用SharedArrayBuffer,而无需跨源隔离页面。但是,它有一个到期日期。

在您的网页中,只需在标签中添加以下标签即可。

代码语言:javascript
复制
<head>
    <meta http-equiv="origin-trial" content="{token}">
</head>

如果您使用NGINX,请添加标题。

代码语言:javascript
复制
add_header Origin-Trial {token};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70535752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档