【发布时间】:2021-07-09 17:41:03
【问题描述】:
我正在尝试在我的网页上创建 Worker:
const url = URL.createObjectURL(blob);
const worker = new Worker(url);
Safari 在控制台显示如下错误:
拒绝加载 blob:https://my.address.com/5fa7b5e6-cb10-4b7c-967b-e95cae58cd71,因为它既没有出现在内容安全策略的 child-src 指令中,也没有出现在 default-src 指令中。
我在页面上有以下 Content-Security-Policy 标签:
<meta http-equiv="Content-Security-Policy" content="worker-src 'self' blob:">
但看起来 Safari 忽略了它。我敢打赌,我尝试了所有可能的 SCP 指令组合(例如 worker-src、object-src、script-src、child-src 等)和源(*、blob:、'unsafe-eval'、'unsafe-inline '等)
欣赏任何想法!
注意事项:
- 当我通过 http 在 Safari 中打开我的网页时,创建的 Worker 没有任何错误。问题是通过 https 打开时。
- Worker 在 Chrome、Firefox、Edge 中运行良好
- 我的页面上只有一个 Content-Security-Policy 标签
- 在 Safari 中检查 Http 响应标头时,它们看起来不错
【问题讨论】:
标签: safari blob web-worker content-security-policy