[Chrome Extension] Trelloのclient.jsを設定すると「Refused to load the script」が出た
javascript触り始めていろいろ躓いているメモです。
Trelloのclient.jsが動かない
Chrome拡張を作っていて、client.jsを使いたくなったのでGetting Started with client.jsに沿って設定したら以下のエラーが出ました。
Refused to load the script 'https://api.trello.com/1/client.js?key=xxx' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem:". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
(keyは伏せてます)
原因
パッケージ外のファイルへアクセスする場合はmanifest.jsonにcontent_security_policyを設定する必要があります。
今回はスクリプトから「https://api.trello.com」へのアクセスしようとしたため、エラーになっていました。
XSSなどの攻撃への対策のようです。
対応
manifest.jsonにセキュリティポリシーを設定することで、指定したドメインへのアクセスを許可します。
ここでは以下を追加しました。
"content_security_policy": "script-src 'self' https://api.trello.com; object-src 'self'"
参考
MDN web docs – content_security_policy
おしまい。
ディスカッション
コメント一覧
まだ、コメントがありません