ラジオストリームを作成しようとしていますchrome拡張機能ですが、問題があります。通常のJS + HTML + CSSのようにブラウザでスクリプトを実行すると機能しますが、= Chrome extension私はこのエラーを受け取ります:
次のコンテンツセキュリティポリシーディレクティブ「script-src 'self' chrome-extension-resource:」に違反しているため、インラインスクリプトの実行を拒否しました。インライン実行を有効にするには、「unsafe-inline」キーワード、ハッシュ(「sha256 -...」)、またはノンス(「nonce -...」)のいずれかが必要です。
その後、これを自分のマニフェストに追加しました。
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
しかし、その後、エラーメッセージが表示されました(上記のコードのマニフェスト行のエラー)
これは私のマニフェストです:
{
"background": {
"scripts": [ "jquery.js", "jquery-ui.js", "plate.js" ]
},
"browser_action": {
"default_icon": "Images/action-normal.png",
"default_popup": "player.html",
"default_title": ""
},
"description": "Chrome Player",
"manifest_version": 2,
"name": "Radio Chrome Player",
"permissions": [ "http://www.radio-station.com/" ],
"version": "1.0"
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}
これはメインのhtmlファイルです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="jquery.js"></script>
<script src="jquery-ui.js"></script>
<script src="main.js"></script>
<script>$(function(){$("#radioplayere").plate({playlist: [{file:"http://RADIO_STATION_STREAM_URL/;"}], phpGetter: "http://hostingshoutcast.com/stream/plate/php/plate.php"});});</script>
</head>
<body>
<div id="radioplayer">If you are seeing this then an error has occurred!</div>
</body>
</html>
問題は次のとおりです。
Chrome CSP インラインコードを禁止 。これはオーバーライドの対象ではありません。きみの 'unsafe-eval'
は問題に対処しておらず、'unsafe-inline'
それは助けになったでしょう 無視されます Chrome。
インラインコードを削除する必要があります。
<script>$(function(){$("#radioplayere").plate({playlist: [{file:"http://RADIO_STATION_STREAM_URL/;"}], phpGetter: "http://hostingshoutcast.com/stream/plate/php/plate.php"});});</script>
これは、jsファイルで移動する必要があります。
Manifest.jsonにタイプミスがあり、コンマを忘れました:
"version": "1.0",
一般に、 JSONバリデーター を使用すると、これらのエラーをキャッチできます。
私の理由は、[〜#〜] csp [〜#〜]問題があるjQueryの古いバージョン(v1.7など)を使用しているためです。新しいバージョン(v2.1.3)を選択します。
私はこれに少し遅れていることを知っていますが、Xanの答えに対するOPのコメントに基づいて、問題を解決する別のコンポーネントは、暗示されるAJAX呼び出しを調整することです.
私は同じエラーを受け取っていたので、API呼び出しを次のように調整しました。
dataType: 'json'
の代わりに:
dataType: 'jsonp'
(問題を解決し、許可されましたが、インラインスクリプトを削除する必要があります。)
Manifest.jsonファイルにCSPを追加すると、エラーが削除されます。それは私の反応アプリのために働いた。 「」が欠落していることがコードの問題であると思われます。それ以外の場合は、以下の行を追加してから試してください。
"csp": "script-src 'self' 'unsafe-inline'; object-src 'self'"