拒绝加载字体‘< URL>’,因为它违反了以下内容安全策略指令Default-src,因此使用Default-src作为备用

lymnna71  于 2022-10-04  发布在  Angular
关注(0)|答案(4)|浏览(246)

我正在使用平均堆栈创建一个Web应用程序,但在浏览器控制台上看到下面的错误消息。
“拒绝加载字体‘’,因为它违反了以下内容安全策略指令:”“Default-src‘self’”。请注意,未显式设置“”font-src“”,因此将“”Default-src“”用作备用。“

代码:

getUsers() {
    return this._http.get("/api/users")
      .pipe(map(result => this.result = result.json().data));
  }
ezykj2lf

ezykj2lf1#

内容安全策略是现代浏览器的一种方式,用于在加载远程资源时定义一组限制。

来自HTTP协议的响应头可以设置这些策略:
带有内容安全策略指令列表的Content-Security-Policy标头(官方)、X-Content-Security-Policy(受Mozilla Firefox和IE10支持)和X-WebKit-CSP(受Google Chrome和Safari支持)。(来自seckit drupal module)

您可以为DOM中的不同类型的元素(例如<img><script><object><embed><iframe>等)设置不同的策略,以限制源自该元素的请求。

因此,您需要将'self'更改为以下选项之一:

  • 'none'-阻止来自任何来源的内容
  • 'self'-仅允许来自您的域的内容
  • 'unsafe-inline'-允许特定的内联内容(请注意,它受指令子集的支持)
  • 'unsafe-eval'-允许一组默认限制的字符串到代码的API(受脚本-src指令支持)

允许使用通配符(*):

  • *-从任何来源加载内容
  • *.example.com-从Example.com及其所有子域名加载内容
  • example.com:*-通过任何端口从Example.com加载内容。-
  • 否则,它将使用您的网站默认端口
fcwjkofz

fcwjkofz2#

在Font-src中添加‘self’和data:对我来说很有效。

Content-Security-Policy: font-src 'self' data:;
xdnvmnnf

xdnvmnnf3#

来自MDN的font-src参考文档

Content-Security-Policy头由您的API设置。检查您的API响应的值。根据错误,我认为您的字体是从与您的应用程序域不同的域加载的。除非您的API将该域列入白名单,否则您的浏览器将不会加载该字体。

示例:

Content-Security-Policy: font-src https://example.com/
xzlaal3s

xzlaal3s4#

只需关闭所有浏览器,清除缓存并重新启动VSC或您的代码编辑器。我为我工作。

相关问题