lates AngularJS(1.3 beta 19)使用eval
。这在铬镀铬中是禁止的。
如何解决问题 without allowing evals ?
错误讯息:
拒绝将字符串评估为JavaScript,因为'unsafe-eval'是 以下内容安全性中不允许使用脚本源 政策指令:“script-src'self'chrome-extension-resource:”。
堆栈追踪:
angular.js:1011
csp angular.js:1011
(anonymous function) angular.js:23556
更新:请参阅ng-csp
https://docs.angularjs.org/api/ng/directive/ngCsp
OUTDATED:看起来AngularJS无法在chrome扩展中检测到CSP。使用显式ng-csp
。链接到AngularJS问题:https://github.com/angular/angular.js/issues/8777
答案 0 :(得分:6)
引用德米特里所链接的documentation:
如果CSP处于活动状态并且自动打开,Angular会尝试自动检测 CSP安全模式。但是,此自动检测会触发CSP错误 登录控制台:
拒绝将字符串评估为JavaScript,因为'unsafe-eval'是 以下内容安全性中不允许使用脚本源 政策指令:“default-src'self'”。请注意,'script-src'不是 显式设置,因此'default-src'用作后备。
此错误无害但令人讨厌。防止错误显示 up,将
ngCsp
directive放在应用程序的根元素上 或者在angular.js
脚本标记上,以html中首先出现的为准 文档。
答案 1 :(得分:2)
找到解决方案:通过在文档元素上添加ng-csp
来强制执行CSP模式。