在将ExpressiveAnnotations(expressive.annotations.validate.js)插入我的应用程序并触发输入进行验证后,浏览器显示一条错误消息(请参见下文)。我认为问题不是源于我的代码,而是配置问题。
我已经发现此行(在ExpressiveAnnotations内部)会导致问题:
ctxEval: function(exp, ctx) { // evaluates expression in the scope of context object
return (new Function('expression', 'context', 'with(context){return eval(expression)}'))(exp, ctx); // function constructor used on purpose (a hack), for 'with' statement not to collide with strict mode, which
// is applied to entire module scope (BTW 'use strict'; pragma intentionally not put to function constructor)
}
显示的错误消息:
[失败](16:14:32):EvalError:拒绝将字符串评估为JavaScript,因为以下内容安全策略指令中不允许'unsafe-eval'脚本源:“ script-src'self ''unsafe-inline'“。
答案 0 :(得分:0)
为解决此问题,我将CSP设置为以下值:
"content_security_policy": "script-src 'self' 'unsafe-eval';