首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在SharedArrayBuffer页面上使用GitHub?

有没有办法在SharedArrayBuffer页面上使用GitHub?
EN

Stack Overflow用户
提问于 2021-08-01 10:53:01
回答 4查看 975关注 0票数 7

要使用SharedArrayBuffer,我们必须添加两个响应头:

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

有没有办法用GitHub页面添加这些标题,这样SharedArrayBuffer就可以工作了吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-08-04 01:15:40

看起来就像Github没有添加自定义头的意图,在2011年发现了相同的问题,到目前为止还没有这个Github页面、HTTP头

票数 1
EN

Stack Overflow用户

发布于 2021-08-06 02:08:22

您可以通过服务工作人员(甚至在SharedArrayBuffer页面上)设置所需的COOP和COEP头来使GitHub工作。

我创建了一个小型库以使其变得更容易:基于指南coi-服务人员启用COOP/COEP而不接触服务器,它概述了所需的步骤:

  1. 当第一次加载页面时,我们会注册员工。
  2. 然后我们重新加载页面。
  3. 最后,既然工作人员控制了一切,现在每个请求都将设置适当的头。

这样做的服务工作者必须包含以下内容:

代码语言:javascript
复制
// sw.js
self.addEventListener("fetch", function (event) {
  if (event.request.cache === "only-if-cached" && event.request.mode !== "same-origin") {
    return;
  }

  event.respondWith(
    fetch(event.request)
      .then(function (response) {
        const newHeaders = new Headers(response.headers);
        newHeaders.set("Cross-Origin-Embedder-Policy", "require-corp");
        newHeaders.set("Cross-Origin-Opener-Policy", "same-origin");

        const moddedResponse = new Response(response.body, {
          status: response.status,
          statusText: response.statusText,
          headers: newHeaders,
        });

        return moddedResponse;
      })
      .catch(function (e) {
        console.error(e);
      })
  );
});
票数 6
EN

Stack Overflow用户

发布于 2021-08-03 05:12:47

到2021年8月,GitHub页面无法使用COOP/COEP头。作为具有自定义头的替代静态文件服务器,防火墙托管可能是一种选择。。我不太熟悉其他的选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68609682

复制
相关文章

相似问题

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