我正在使用平均堆栈创建一个Web应用程序,但在浏览器控制台上看到下面的错误消息。
“拒绝加载字体‘’,因为它违反了以下内容安全策略指令:”“Default-src‘self’”。请注意,未显式设置“”font-src“”,因此将“”Default-src“”用作备用。“
代码:
getUsers() {
return this._http.get("/api/users")
.pipe(map(result => this.result = result.json().data));
}
4条答案
按热度按时间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加载内容。-fcwjkofz2#
在Font-src中添加‘self’和data:对我来说很有效。
xdnvmnnf3#
来自MDN的font-src参考文档
Content-Security-Policy头由您的API设置。检查您的API响应的值。根据错误,我认为您的字体是从与您的应用程序域不同的域加载的。除非您的API将该域列入白名单,否则您的浏览器将不会加载该字体。
示例:
xzlaal3s4#
只需关闭所有浏览器,清除缓存并重新启动VSC或您的代码编辑器。我为我工作。