スクリプトの実行を拒否しました。厳密なMIMEタイプチェックが有効になっていますか?


92

コンソールでこのエラーが発生するのはなぜですか?

MIMEタイプ( 'application / json')が実行可能でないため、' https://www.googleapis.com/customsearch/v1?key = API_KEY&q = flower&searchType = image&fileType = jpg&imgSize = small&alt = json'からのスクリプトの実行を拒否しました。厳密なMIMEタイプチェックが有効になっています。

回答:


60

<script>外部JavaScriptを読み込もうとしている要素があります。

指定したURLは、JavaScriptプログラムではなく、JSONファイルを指しています。

サーバーはそれがJSONであることを正しく報告しているため、ブラウザーはJSONをJavaScriptとして実行しようとするのではなく、そのエラーメッセージで中止します(エラーがスローされます)。


これの根本的な理由は、Ajaxリクエストを作成しようとしていて、クロスオリジンエラーが発生し、JSONPを使用していることをjQueryに通知して修正しようとしたことです。これは、URLがJSONP(JavaScriptの別のサブセット)を提供している場合にのみ機能しますが、これは提供していません。

callback=the_name_of_your_callback_functionただし、クエリ文字列パラメータが追加された同じURLはJavaScriptを返します。


4
私はこれを与えました、そしてそれはエラーを修正します<script id = "data" type = "application / json"
rob.m 2016年

2
type="application/json"—これで、ブラウザはJavaScriptを読み込もうとしていないことを認識したため、script要素を完全に無視します。
クエンティン

59

私の場合、ファイルが見つかりませんでした。javascriptファイルへのパスを間違って入力しました。


8
同じ。パスが正しくないと、HTMLページの応答にエラーが発生し、この紛らわしいエラーメッセージが表示されます。
Gil Roitto 2018

2
天才的な答え。ありがとう:)
AnjanaSilva19年

21

この結果はグーグルで最初にポップアップするものであり、ここで起こっていることよりも幅広いものです。以下は、Expressサーバーに適用されます

ネストされたフォルダからリソースにアクセスしようとしていました。

中にindex.html

<script src="./script.js"></script>

静的ルートは次の場所にマウントされました:

app.use(express.static(__dirname));

しかし、script.js中に配置され、ネストされたフォルダのように:js/myStaticApp/script.js スクリプトの実行を拒否すると、ミームタイプのチェックが有効になります。 私はちょうどにスタティックルートを変更します:

app.use(express.static(path.join(__dirname, "js")));

今それは動作します:)


6

Node.jsを使用している場合は、express.static()を使用してみてください。

ファイルの直接提供を開始するには、静的アセットを保持するディレクトリの名前をexpress.staticミドルウェアに渡すだけです。たとえば、画像、CSS、JavaScriptファイルをpublicという名前のディレクトリに保存する場合、次のように実行できます。

すなわち:app.use(express.static( 'public'));

このアプローチで私の問題は解決しました。

ありがとう、


この特定の質問に対する正しい答えではないかもしれませんが、それは私の問題の解決策でした。ありがとう!
mcheah 2018

4

しばらく検索した後、Windows 1064ビットのこのエラーがJavaScriptに関連していることに気付きました。これを確認するには、ブラウザのDevToolsにアクセスして、最初に確認してください。私の場合、「MIMEタイプ( 'application / javascript')は実行可能ではありません」のようなエラーが表示されます。

その場合、私は解決策を見つけました。取引は次のとおりです。

  1. https://github.com/jupyterlab/jupyterlab/issues/6098でユーザー「ilango100」を借用しています

私はしばらく前にまったく同じ問題を抱えていました。この問題はWindowsに固有のものだと思います。これは、JavaScriptファイルのWindowsレジストリに間違ったMIMEタイプが設定されていることが原因です。正しいコンテンツタイプでWindowsレジストリを編集することにより、問題を解決しました。

regedit-> HKEY_LOCAL_MACHINE \ Software \ Classes->ファイル拡張子ごとにたくさんのフォルダが表示されます->「。js」レジストリまで下にスクロールして選択します->「コンテンツタイプ」の値が以外の場合は右側にありますapplication / javascriptの場合、これが問題の原因です。コンテンツタイプを右クリックし、値をapplication / javascriptに変更します

ここに画像の説明を入力してください

ブラウザでもう一度お試しください。」

その後、エラーが変わることに気づきました。ブラウザで自動的に開くことすらなくなりました。ただし、PGAdminはサイドバー(カレンダー/時計の近く)で開きます。ブラウザで直接開こうとすると(「新しいPGAdmin 4ウィンドウ...」)、それも機能しません。

最終的な解決策:[サーバーのURLをコピー]をクリックして、ブラウザに貼り付けます。それは私のために働いた!


1
+1これは私のために働いた。私が使用するために、レジストリに変更を行ったapplication/javascriptために.js拡張。次に、pgAdminを閉じて再度開くと、正常にロードされました(サーバーのURLをコピーせずに)。私は、Windows 8.1とPostgresSQLを13実行しています
エリックMutta

2

.min代わりに誤ってjsファイルに名前を付けました.min.js...


1

Pythonフラスコ

のWindowsは、HKCR / .jsファイルの「コンテンツタイプ」の値が適切なMIMEタイプに設定されていない場合、それはあなたの問題を引き起こす可能性がありますので、レジストリからのデータを使用しています。

regeditを開き、HKEY_CLASSES_ROOTに移動して、キー.js / ContentTypeの値がtext / javascriptであることを確認します。

C:\>reg query HKCR\.js /v "Content Type"

HKEY_CLASSES_ROOT\.js
    Content Type    REG_SZ    text/javascript

0

以下に示すコードスニペットをエントリhtmlに追加します。つまり、reactjsの「index.html」

<div id="wrapper"></div>
<base href="/" />


1
なぜこれが役立つのか説明していただければ幸いです。
JuanLanus20年

-1

次のような急行のルートがある場合:

app.get("*", (req, res) => {
  ...
});

より具体的なものに変更してみてください。

app.get("/", (req, res) => {
  ...
});

例えば。

または、同じHTMLテンプレートを何度も再帰的に提供していることに気付くかもしれません...


-1

私は同じ問題を抱えていました、そして私はこのように修正しました

change "text/javascript"

type="application/json"

2
これにより、ブラウザが最初にURLを要求するのを停止scriptし、ドキュメント内の要素の存在を完全に無意味にします。
クエンティン

-1

私の場合、404'dファイルのシンボリックリンクがあり、Tomcatがシンボリックリンクを許可するように構成されていませんでした。

ほとんどの人にとってそれが原因である可能性は低いと思いますが、必死になっている場合は、念のためこの可能性を確認してください。


-2

私も同じ問題を抱えていましたが、問題はパスにスラッシュがないことでした。

私は持っていた

それを修正するには、jquery-uiとjquery-ui.minの間にスラッシュを追加するだけで済みます。

  <script type="text/javascript" src="js/jquery-ui/jquery-ui.min.js"></script>

これが役立つことを願っています:D


-12

jspパスに$ {pageContext.request.contextPath}だけを追加することで、問題を解決しました。の代わりに :

 <script    src="static/js/jquery-3.2.1.min.js"></script>

私が設定した:

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.