使用7.4.1,当我加载带有videojs的页面时,Chrome devtools向我显示此错误:
Refused to create a worker from
'blob:https://dev.culturediscovery.com/51e9879d-fa81-4044-9117-
7328c0df4dd6' because it violates the following Content Security Policy directive: "default-src * data: 'unsafe-eval' 'unsafe-inline'". Note that 'worker-src' was not explicitly set, so 'default-src' is used as a fallback.
(anonymous) @ video.min.js:1830
(anonymous) @ video.min.js:2
(anonymous) @ video.min.js:2
有人可以帮我弄清楚如何处理吗?
答案 0 :(得分:0)
如回溯所示,错误与Content Security Policy有关。因此,如果存在CSP指令中的default-src
或worker-src
,则每次在browser that supports CSP for workers中生成worker的尝试都必须通过该指令或抛出错误。
关于blob工作者有一个特殊说明:
要为工作人员指定内容安全策略,请设置 请求的Content-Security-Policy响应标头 请求工作脚本本身。
例外情况是工作脚本的来源是全局的 唯一标识符(例如,如果其URL包含数据格式或 斑点)。在这种情况下,工作者确实继承了内容安全性 创建文档的文档或工作人员的政策。
因此创建Blob网址的页面(或iframe)具有CSP指令:
"default-src * data: 'unsafe-eval' 'unsafe-inline'"
现在考虑以下事项:
如上定义,特殊的URL方案指的是 唯一内容,例如“数据:”,“ blob:” 和“文件系统:” 排除匹配*的政策,并且必须明确列出。
这意味着您需要将blob:
数据架构显式添加到default-src
或worker-src
:
"default-src * data: 'unsafe-eval' 'unsafe-inline' blob:"