观看Chrome控制台时,video.min.js中出现“拒绝从Blob创建工作者”错误

时间:2019-02-14 16:48:59

标签: javascript video.js

使用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

有人可以帮我弄清楚如何处理吗?

1 个答案:

答案 0 :(得分:0)

如回溯所示,错误与Content Security Policy有关。因此,如果存在CSP指令中的default-srcworker-src,则每次在browser that supports CSP for workers中生成worker的尝试都必须通过该指令或抛出错误。

关于blob工作者有一个特殊说明:

  

要为工作人员指定内容安全策略,请设置   请求的Content-Security-Policy响应标头   请求工作脚本本身。

     

例外情况是工作脚本的来源是全局的   唯一标识符(例如,如果其URL包含数据格式或   斑点)。在这种情况下,工作者确实继承了内容安全性   创建文档的文档或工作人员的政策

     

来源:MDN: CSP in workers

因此创建Blob网址的页面(或iframe)具有CSP指令:

"default-src * data: 'unsafe-eval' 'unsafe-inline'"

现在考虑以下事项:

  

如上定义,特殊的URL方案指的是   唯一内容,例如“数据:”,“ blob:” 和“文件系统:”   排除匹配*的政策,并且必须明确列出

     

来源:W3: Security Considerations for GUID URL schemes

这意味着您需要将blob:数据架构显式添加到default-srcworker-src

"default-src * data: 'unsafe-eval' 'unsafe-inline' blob:"