質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

Q&A

解決済

1回答

6069閲覧

Chrom拡張機能 外部リソースを読み込めない

tomagurosu

総合スコア37

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

0グッド

0クリップ

投稿2018/02/08 02:01

編集2018/02/08 02:17

jquery.xdomainajax.jsを入れ、選択範囲した英単語の意味を辞書サイトから取得する
Chromeの拡張機能を作っています。
ですが実際に使ってみるとコンソールに以下のエラーが出ており

Refused to load the script 'http://query.yahooapis.com/v1/public/yql?callback=jQuery32103336417300481622_1518054734369&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&q=select%20*%20from%20htmlstring%20where%20url%3D%22https%3A%2F%2Fejje.weblio.jp%2Fcontent%2F%22%20and%20xpath%3D%22*%22&format=xml&_=1518054734372'
because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".

Xdomainajaxで使われているyqlのapiが取得できていないようでしたのでmanifest.jsonを以下に書き換えたのですが変わらず同じエラー内容が出ます。

JSON

1{ 2 "manifest_version": 2, 3 "author": "test", 4 "homepage_url": "http://example.com", 5 "name": "translater", 6 "description": "test", 7 "version": "1.0", 8 "icons": { 9 "32": "icon/zisyo_icon.png", 10 "48": "icon/zisyo_icon.png", 11 "128": "icon/zisyo_icon.png" 12 }, 13 "browser_action": { 14 "default_icon": "icon/zisyo_icon.png", 15 "default_popup": "popup.html", 16 "default_title": "" 17 }, 18 "content_security_policy":"script-src 'self' http://localhost http://query.yahooapis.com ; object-src 'self'", 19} 20

機能の流れはpopup.htmlから単語取得する処理を書いたjsを呼び出しています。

アドバイスお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

CSPにhttphttpsではない)が出てきたら要注意です。

... The host part of the origin must explicitly be specified for the https and chrome-extension schemes. ...

Content Security Policy (CSP) - Google Chrome

拡張機能でAjaxを使うときはhttpsにしましょう。

なお、引用は省略しますが、http://localhost(またはhttp://127.0.0.1)については、例外的に許容されているとのことです。

また、当該ライブラリはYQL側の仕様変更により、改造しないと使えなくなっているはずなので、この記事などを参考に改造を施されているのではないかと推測しますが、こちらも例外なくhttpsでYQLにアクセスさせるようにする必要があります。

1つ気になるのは、この回答を書く前に手元でも試しているのですが、提示されたCSPの書き方だと、インストールの時点で警告が出ていないでしょうか?

text

1この拡張機能をインストールしようとしたときに、次の警告がありました。 2Ignored insecure CSP value "http://query.yahooapis.com" in directive 'script-src'.

CSPをhttpで書くと、手元のChrome 64ではインストール時にこのようなメッセージが表示されました。httpsに修正すると警告は出なくなります。

(訂正:表示されるメッセージはエラーではなく警告でした。警告が出ても、インストールは行われました。)

投稿2018/02/08 03:44

編集2018/02/08 04:07
sii_side

総合スコア849

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomagurosu

2018/02/08 04:58

回答ありがとうございます。 YQL、CSPの記述をhttpsに変えてみたのですが変わらず Refused to load the script 'https://query.yahooapis.com/v1/public/yql?callback=jQuery32102536949303061271_1518065517669&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&q=select%20*%20from%20htmlstring%20where%20url%3D%22https%3A%2F%2Fejje.weblio.jp%2Fcontent%2F%22%20and%20xpath%3D%22*%22&format=xml&_=1518065517670' because it violates the following Content Security Policy directive: "script-src ". とエラーが出てしまいます。 インストール時の警告なのですが書き換えた後も変わらず この拡張機能をインストールしようとしたときに、次の警告がありました。 Ignored insecure CSP value "'self'https://query.yahooapis.com" in directive 'script-src'. と表示されてしまいます。 httpsでYQLにアクセスとは単にxdomainajax.jsのYQLのURLをhttpからhttpsに変えればいいだけでしょうか? よろしくお願いいたします
tomagurosu

2018/02/08 07:02

すみません、空白に気づいていませんでした。 修正したところアクセスを確認できました! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問