Chrome打包应用中的JSON模式验证

4
我正在尝试在我的Chrome应用程序中使用AJV JSON模式验证器。但是我遇到了错误。

EvalError: 拒绝将字符串作为JavaScript进行评估,因为在以下内容安全策略指令中,'unsafe-eval'不是允许的脚本来源: "default-src 'self' blob: filesystem: chrome-extension-resource:"。

这发生在执行期间。

var validate = ajv.compile(schema);

据我所知,AJV使用动态代码生成和eval()来验证JSON,这在CSP中是被禁止的。
有没有一种方法可以在Chrome应用程序中使用AJV?
或者是否有其他JSON模式验证器可以在Chrome应用程序中使用?
3个回答

3
我最近使用ajv-cli实现了预编译模式,可以将模式编译成独立的模块。这样,您就可以完全避免使用代码生成和函数构造器,从而简单地遵守CSP。
尽管与Ajv本身相比存在限制,但大多数用例都已经涵盖。

ajv 7+ 的更新限制:https://github.com/ajv-validator/ajv/blob/master/docs/standalone.md#configuration-and-limitations - Carl G

1

具体的例子帮了我很多。谢谢。 - anton.mo

0
遇到了相同的问题。 我使用了jsonchema作为替代品。 对我来说运行得很好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接