一尘不染

AngularJS在Chrome扩展程序中使用eval

angularjs

后来的AngularJS(1.3 beta 19)使用eval。铬萃取中禁止这样做。

如何在
不允许评估的情况下 解决问题?

错误信息:

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

堆栈跟踪:

angular.js:1011
csp angular.js:1011
(anonymous function) angular.js:23556

更新:请参阅https://docs.angularjs.org/api/ng/directive/ngCsp的文档ng- csp

过时的:看起来AngularJS无法检测到Chrome扩展程序中的CSP。使用显式ng- csp。链接到AngularJS问题:https
:
//github.com/angular/angular.js/issues/8777


阅读 308

收藏
2020-07-04

共1个答案

一尘不染

引用Dmitry链接的文档

Angular会尝试自动检测CSP是否处于活动状态,并自动打开CSP安全模式。但是,此自动检测将触发CSP错误,以记录在控制台中:

拒绝将字符串评估为JavaScript,因为在以下内容安全策略指令“ default-src’self’”中不允许使用’unsafe-
eval’作为脚本源。 请注意,未明确设置“ script-src”,因此将“ default-src”用作后备。

该错误是无害的但令人讨厌。为防止出现错误,请将ngCsp指令放在应用程序的根元素或angular.jsscript标记上,以html文档中最先出现的那个为准。

2020-07-04