我打算在chrome应用程序中使用AJV JSON模式验证器。
但是我得到了错误


  EvalError:拒绝将字符串评估为JavaScript,因为在以下内容安全策略指令中不允许使用'unsafe-eval'脚本源:“ default-src'self'blob:文件系统:chrome-extension-resource:”。


它发生在执行

var validate = ajv.compile(schema);


据我了解,AJV使用动态代码生成和eval()来验证JSON
这是CSP禁止的。

有没有办法在Chrome应用中使用AJV?

还是在Chrome应用中可以使用其他一些JSON模式验证器?

最佳答案

如果您要使用的某些库与Chrome CSP不兼容,则可以use it inside a sandbox

这是well documented,并且有concrete example和完整的专用文章"Using eval in Chrome Extensions. Safely."

缺点是您无法编写同时使用Chrome API和库的代码。您需要将其分开并在两个脚本之间进行通信。

09-09 22:03
查看更多