[英]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.