あるjavascriptを書いてあるhtmlを実行すると、firefoxでは問題なく動作するのですが、chromeだと動作しません。

console.logを表示すると、下記の内容が表示されます。

Refused to execute script from 'http://www.*******/******.jsonp?jsonCallback=**********' because its MIME type ('') is not executable, and strict MIME type checking is enabled.

どうすれば、問題なく動作させられるか教えて下さい。

宜しくお願いします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2016/07/27 10:11:13
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント100pt

質問で削ってしまった、ここ。ここは大切なところです。

because its MIME type ('') is not executable, and strict MIME type checking is enabled.

想像するに、text/plain か application/json なのだと思いますが、どのバージョンからか Google Chrome は応答の MIME タイプの確認が厳しくなっているみたいです。
https://bugs.chromium.org/p/chromium/issues/detail?id=180007
http://qiita.com/yooo_gooo/items/18a63b1aadcb926e4957

JSONP は、JSON 形式の引数を持つ関数呼び出し(javascript)のコードとして応答を返します。
一般的な対処としては、以下のどちらかになります。

  • サーバ側(HTML の方ではないです)で、JSONP のときは応答の Content-Type ヘッダで application/javascript を返す
  • JSONP ではなく、JSON で応答をもらう(クロスドメインの制限はあるが)


「あるjavascript」の実際のコードや、どこにリクエストを出しているのか、などを追記できるなら、もう少し的確な回答が付く可能性があります。

他7件のコメントを見る
id:a-kuma3

その hoge.jsonp ファイルは、自由に名前を付けられるのでしょうか。

静的なファイルで JSONP 形式ならば、hoge.js という名前で保存して、$.getJSON で hoge.js にアクセスすれば、application/javascript で返される可能性がかなり高いと思います。

2016/07/25 21:06:35
id:worldtravel

ありがとうございます。
現在、諦めて、jsonpを使わない作りに変えました。

色々とありがとうございました。

2016/07/27 10:11:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません