要使用SharedArrayBuffer,我们必须添加两个响应头:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp有没有办法用GitHub页面添加这些标题,这样SharedArrayBuffer就可以工作了吗?
发布于 2021-08-04 01:15:40
看起来就像Github没有添加自定义头的意图,在2011年发现了相同的问题,到目前为止还没有这个Github页面、HTTP头
发布于 2021-08-06 02:08:22
您可以通过服务工作人员(甚至在SharedArrayBuffer页面上)设置所需的COOP和COEP头来使GitHub工作。
我创建了一个小型库以使其变得更容易:基于指南coi-服务人员的启用COOP/COEP而不接触服务器,它概述了所需的步骤:
这样做的服务工作者必须包含以下内容:
// 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);
})
);
});发布于 2021-08-03 05:12:47
到2021年8月,GitHub页面无法使用COOP/COEP头。作为具有自定义头的替代静态文件服务器,防火墙托管可能是一种选择。。我不太熟悉其他的选择。
https://stackoverflow.com/questions/68609682
复制相似问题