angular 6の平均スタックを使用してWebアプリを作成していますが、ブラウザコンソールにエラーメッセージが表示されます。
「次のコンテンツセキュリティポリシーディレクティブに違反しているため、フォント '<URL>'のロードが拒否されました:「default-src 'self'」。 'font-src'が明示的に設定されていないため、 'default-src'が使用されますフォールバックとして」
コード:
getUsers() {
return this._http.get("/api/users")
.pipe(map(result => this.result = result.json().data));
}
「自己」とデータを追加する:font-srcに追加するとうまくいきます。
Content-Security-Policy: font-src 'self' data:;
コンテンツセキュリティポリシーは、最新のブラウザがリモートリソースをロードするときに一連の制限を定義する方法です。
HTTPプロトコルからの応答ヘッダーは、これらのポリシーを設定できます。
Content-Security-Policy
ヘッダー(公式)、X-Content-Security-Policy
(Mozilla FirefoxおよびIE10でサポート)およびX-WebKit-CSP
(GoogleでサポートChromeおよびSafari)HTTP応答ヘッダーとコンテンツセキュリティポリシーディレクティブのリスト。(from seckit drupalモジュール )
DOM内の要素のタイプごとに異なるポリシーを設定できます(例:<img>
、<script>
、<object>
、<embed>
、<iframe>
など...)、その要素から発生するリクエストを制限します。
したがって、変更する必要があります'self'
を次のいずれかに変更します。
'none'
-任意のソースからのコンテンツをブロック'self'
-ドメインのコンテンツのみを許可する'unsafe-inline'
-特定のインラインコンテンツを許可します(注:ディレクティブのサブセットでサポートされています)'unsafe-eval'
-デフォルトで制限されている文字列からコードへのAPIのセットを許可します(script-srcディレクティブでサポートされています)ワイルドカード(*)を使用できます。
*
-任意のソースからコンテンツをロードします*.example.com
-example.comとそのすべてのサブドメインからコンテンツを読み込みますexample.com:*
-任意のポートを介してexample.comからコンテンツをロードします。 -font-src MDNからの参照ドキュメント
Content-Security-Policyヘッダーは、APIによって設定されます。その値についてAPI応答を確認してください。エラーごとに、フォントはアプリケーションドメインとは異なるドメインから読み込まれたと思います。 APIがそのドメインをホワイトリストに登録しない限り、ブラウザーはフォントをロードしません。
例:
Content-Security-Policy: font-src https://example.com/