【问题标题】:Google Chrome "Refused to load the script" error in Angular applicationAngular 应用程序中的 Google Chrome“拒绝加载脚本”错误
【发布时间】:2021-04-30 15:02:12
【问题描述】:

即使使用隐身窗口,我在 Chrome 开发控制台上也观察到以下错误:

拒绝加载脚本“https://localhost:5001/_framework/aspnetcore-browser-refresh.js”,因为它违反了以下内容安全策略指令:“script-src 'sha256-ZT3q7lL9GXNGhPTB1Vvrvds2xw/koV0zoeok2tiV23I ='”。请注意,'script-src-elem' 没有显式设置,因此 'script-src' 用作备用。

我查看了原因,通常报告浏览器扩展,但在隐身窗口中,没有任何扩展等。那么,任何与该问题相关的修复?

【问题讨论】:

  • 不同版本的chrome中的内容安全策略是不同的。升级chrome后,看看会不会出现这个问题。
  • 是的,我检查了但 Chrome 已经更新并再次重新测试仍然出现问题。即使在隐身模式下也很奇怪:(
  • @Karney。还有什么办法可以解决吗?

标签: javascript angular typescript google-chrome asp.net-core


【解决方案1】:

尝试更改安全策略,例如:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' https://localhost:5001 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" />

或者只有

<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://localhost:5001 'unsafe-inline' 'unsafe-eval'" />

Chrome 具有 CSP(内容安全政策)。

  • 您不能在 Chrome 应用程序页面中使用内联脚本。该限制禁止块和事件处理程序 ()。
  • 您不能在任何应用文件中引用任何外部资源(视频和音频资源除外)。您不能在 iframe 中嵌入外部资源。
  • 您不能使用字符串到 JavaScript 的方法,例如 eval() 和 new Function()。

这里是策略值:

default-src 'self';
connect-src * data: blob: filesystem:;
style-src 'self' data: 'unsafe-inline';
img-src 'self' data:;
frame-src 'self' data:;
font-src 'self' data:;
media-src * data: blob: filesystem:;

More infomation

【讨论】:

  • 非常感谢。是否与在 Angular 应用程序中添加对 angular.json、index.html 的脚本引用有关?或者在 .NET Core razor 页面上提供参考?
  • 应该在angular index.html中改一下。
  • 请提供解决方案的详细示例?
  • @Lorenzo,link,参考标记答案。
  • 链接上的答案几乎没有解释。
猜你喜欢
  • 2016-08-12
  • 2015-08-13
  • 2015-04-21
  • 2014-03-07
  • 2021-08-21
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多