Chrome は MIME タイプが間違っているため AJAX スクリプトの実行を拒否します 質問する

Chrome は MIME タイプが間違っているため AJAX スクリプトの実行を拒否します 質問する

AJAX 経由で JSON としてスクリプトにアクセスしようとしていますが、Safari や他のブラウザでは問題なく動作しますが、残念ながら Chrome では実行されません。次のエラーが発生します。

MIME タイプ ('application/json') が実行可能ではなく、厳密な MIME タイプ チェックが有効になっているため、'*' からのスクリプトの実行を拒否しました。

リクエストは次のとおりです:

$.ajax({
    url: "http://some_url/test.json?callback=?",
    type: "GET",
    dataType: 'json',
    cache: true,
    success: function (data, status, error) {
      console.log('success', data);
    },
    error: function (data, status, error) {
      console.log('error', data, status, error);
    }
});

これに対する回避策を持っている人はいますか?

ベストアンサー1

コールバック引数を追加することで、XMLHttpRequest を使用して JSON を要求する代わりに、スクリプト要素を使用して JSONP を要求することを jQuery に伝えます。

JSONP は JSON ではありません。JavaScript プログラムです。

サーバーを変更して、JSONP の正しい MIME タイプ ( ) を出力するようにしますapplication/javascript

(ついでに言えば、jQuery に JSON を期待していると伝えるのはやめてください。矛盾しています: dataType: 'jsonp')。

おすすめ記事