繁体   English   中英

web工人如何处理CORS?

[英]How to handle CORS for web workers?

在我的一个 js 文件(game.js)中,使用了 web worker,这会导致 CORS 出现问题。

来自game.js:

var engine = new Worker(options.machinejs|| 'static/js/mainjs/machine.js');

我遇到的第一个问题是 SharedArrayBuffer 未定义,我通过添加所需的标头解决了它。

@app.route("/")
def home():
    resp = make_response(render_template("index.html"))
    resp.headers['Cross-Origin-Embedder-Policy'] = 'require-corp'
    resp.headers['Cross-Origin-Opener-Policy'] = 'same-origin'
    return resp

我摆脱了那个错误,但得到了这个错误:

http://127.0.0.1:5000/static/js/mainjs/machine.js net::ERR_BLOCKED_BY_RESPONSE 304

当我检查响应时,我可以看到我为“http://127.0.0.1:5000/”添加的 header 部分,但我没有看到http://127.0.0.1:5000/static/js/mainjs/machine.js的此类标头http://127.0.0.1:5000/static/js/mainjs/machine.js事实上,它警告我添加

Cross-Origin-Embedder-Policy: require-corp

在我的文档中。 在哪里以及如何?

我显然将 CORS 与 CORP 混淆了,尽管它们是相关的。

我找到的解决方案是:

@app.route("/")
def home():
    return render_template("index.html")

@app.after_request
def add_header_home(response):
    response.headers['Cross-Origin-Embedder-Policy'] = 'require-corp'
    response.headers['Cross-Origin-Opener-Policy'] = 'same-origin'
    return response

不知何故 after_request 装饰器在这里帮助了我们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM