我打算在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和库的代码。您需要将其分开并在两个脚本之间进行通信。