Android Lollipop 以降での「スクリプトの読み込みが拒否されました」問題の解決
Lollipop 以降を搭載した Android デバイスにアプリを展開する場合、ユーザーは「次のコンテンツ セキュリティ ポリシー ディレクティブに違反しているため、スクリプトのロードが拒否されました。」というエラーが発生します。この問題は、これらのバージョンで実装されているより厳格なコンテンツ セキュリティ ポリシーが原因で発生します。
コンテンツ セキュリティ ポリシーについて
コンテンツ セキュリティ ポリシー (CSP) は、コンテンツ セキュリティ ポリシー (CSP) を制限するセキュリティ対策です。 Web ページへの外部リソースの読み込み。悪意のあるコンテンツの実行を防ぐのに役立ちます。一連の許可されたドメインを指定することにより、ポリシーはどのスクリプト、スタイル、およびイメージをロードできるかを定義します。
KitKat および以前のデフォルト ポリシー
Android KitKat および以前のデフォルトの CSP は次のとおりです:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
このポリシーでは、サイトのオリジン (「self」) と、Google Analytics (「https://ssl.gstatic」を含む) のいくつかの特定のドメインからのスクリプトが許可されます。 .com').
Lollipop 以降の制限ポリシー
Android Lollipop 以降では、デフォルトの CSP がより制限的になります:
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self'; style-src 'self' 'unsafe-inline'; media-src *">
このポリシーでは、サイトのオリジンからのスクリプトのみが許可され、外部ソースからのスクリプトの読み込みは許可されません。
解決策
問題を解決するには、次のことを行う必要があります。目的のドメインからのスクリプトを許可するように CSP を変更します。この場合、「http://Guess.What.com/MyScript.js」からスクリプトをロードします。
修正された CSP
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; script-src 'self' http://Guess.What.com 'unsafe-inline' 'unsafe-eval'; ">
「script-src 'self' http://Guess.What.com 'unsafe-inline' 'unsafe-eval';」という行を追加します。 CSP に対して、そのドメインからのスクリプトを明示的に許可していることになります。
修正された CSP を実装した後、スクリプトはエラーなく正常に読み込むことができます。
以上がAndroid Lollipop以降の「スクリプトの読み込みを拒否しました」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。