Refusé d'exécuter le script, la vérification stricte du type MIME est activée?

Réponses:

58

Vous avez un <script>élément qui tente de charger du JavaScript externe.

L'URL que vous lui avez donnée pointe vers un fichier JSON et non vers un programme JavaScript.

Le serveur signale correctement qu'il s'agit de JSON, de sorte que le navigateur abandonne avec ce message d'erreur au lieu d'essayer d'exécuter le JSON en JavaScript (ce qui générerait une erreur).


Les chances sont que la raison sous-jacente à cela est que vous essayez de faire une requête Ajax, que vous avez rencontré une erreur d'origine croisée et que vous avez essayé de la corriger en indiquant à jQuery que vous utilisez JSONP. Cela ne fonctionne que si l'URL fournit JSONP (qui est un sous-ensemble différent de JavaScript), ce que celui-ci ne fait pas.

La même URL avec le paramètre de chaîne de requête supplémentaire callback=the_name_of_your_callback_functionrenvoie cependant JavaScript.

Quentin
la source
4
je l'ai maintenant donné et il corrige l'erreur <script id = "data" type = "application / json"
rob.m
2
type="application/json"- Le navigateur sait maintenant qu'il n'essaye pas de charger JavaScript, il ignore donc entièrement l'élément de script.
Quentin
58

Dans mon cas, c'était un fichier introuvable, j'ai mal tapé le chemin du fichier javascript.

mruanova
la source
8
Le même. Un chemin d'accès incorrect entraîne une réponse de page HTML d'erreur, qui à son tour provoque ce message d'erreur déroutant.
Gil Roitto
2
Réponse géniale. Merci :)
Anjana Silva
21

Ce résultat est le premier qui apparaît dans Google et est plus large que ce qui se passe ici. Ce qui suit s'appliquera à un serveur express :

J'essayais d'accéder aux ressources à partir d'un dossier imbriqué.

A l'intérieur index.htmlj'avais

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

La route statique a été montée à:

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

Mais le script.jsest situé dans le dossier imbriqué comme dans: js/myStaticApp/script.js refusé d'exécuter le script, la vérification du type de meme est activée. Je viens de changer la route statique en:

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

Maintenant ça marche :)

AIon
la source
6

Essayez d'utiliser express.static () si vous utilisez Node.js.

Il vous suffit de transmettre le nom du répertoire dans lequel vous stockez vos actifs statiques au middleware express.static pour commencer à servir les fichiers directement. Par exemple, si vous conservez vos fichiers images, CSS et JavaScript dans un répertoire nommé public, vous pouvez faire comme ci-dessous

ie: app.use (express.static ('public'));

Cette approche a résolu mon problème.

Merci,

Nimesh
la source
peut-être pas la bonne réponse à cette question spécifique, mais c'était la solution à mon problème. Merci!
mcheah
2

J'ai accidentellement nommé le fichier js au .minlieu de .min.js...

OZZIE
la source
2

Après avoir cherché pendant un moment, j'ai réalisé que cette erreur dans mon Windows 10 64 bits était liée à JavaScript. Pour voir cela, accédez à votre navigateur DevTools et confirmez-le d'abord. Dans mon cas, il affiche une erreur du type "Le type MIME ('application / javascript') n'est pas exécutable".

Si tel est le cas, j'ai trouvé une solution. Voici l'affaire:

  1. Emprunt de l'utilisateur "ilango100" sur https://github.com/jupyterlab/jupyterlab/issues/6098 :

J'ai eu exactement le même problème il y a quelque temps. Je pense que ce problème est spécifique à Windows. Cela est dû au mauvais type MIME défini dans le registre Windows pour les fichiers javascript. J'ai résolu le problème en modifiant le registre Windows avec le type de contenu correct:

regedit -> HKEY_LOCAL_MACHINE \ Software \ Classes -> Vous verrez beaucoup de dossiers pour chaque extension de fichier -> Faites simplement défiler jusqu'au registre ".js" et sélectionnez-le -> Sur la droite, si la valeur "Type de contenu" est différente de application / javascript, alors cela cause le problème. Cliquez avec le bouton droit sur Type de contenu et modifiez la valeur en application / javascript

entrez la description de l'image ici

Réessayez dans le navigateur. "

Après cela, j'ai réalisé que l'erreur change. Il ne s'ouvre même plus automatiquement dans le navigateur. PGAdmin, cependant, sera ouvert sur la barre latérale (près du calendrier / horloge). En essayant d'ouvrir directement dans le navigateur ("Nouvelle fenêtre PGAdmin 4 ...") cela ne fonctionne pas non plus.

SOLUTION FINALE: cliquez sur "Copier l'URL du serveur" et collez-le dans votre navigateur. Cela a fonctionné pour moi!

araujo.jpc
la source
+1 cela a fonctionné pour moi. J'ai fait le changement dans le registre à utiliser application/javascriptpour l' .jsextension. Ensuite, j'ai fermé et rouvert pgAdmin et il s'est bien chargé (sans copier l'URL du serveur). J'utilise Windows 8.1 et PostgresSQL 13.
Eric Mutta il y a
1

Flacon de python

Sous Windows , il utilise les données du registre, donc si la valeur "Type de contenu" dans HKCR / .js n'est pas définie sur le type MIME approprié, cela peut provoquer votre problème.

Ouvrez regedit et accédez à HKEY_CLASSES_ROOT assurez-vous que la clé .js / Content Type a la valeur text / javascript

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

HKEY_CLASSES_ROOT\.js
    Content Type    REG_SZ    text/javascript
Devandran
la source
0

Ajoutez l'extrait de code comme indiqué ci-dessous à l'entrée html. ie "index.html" dans reactjs

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

Oseni Adefemi
la source
1
J'apprécierais beaucoup une explication sur pourquoi est-ce utile.
Juan Lanus
-1

Si vous avez un itinéraire en express tel que:

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

Essayez de le changer pour quelque chose de plus spécifique:

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

Par exemple.

Sinon, vous pourriez vous retrouver à servir de manière récursive le même modèle HTML encore et encore ...

Ariel
la source
-1

J'ai le même problème alors j'ai corrigé comme ça

change "text/javascript"

à

type="application/json"
MH Fuad
la source
2
Cela empêche le navigateur de demander l'URL en premier lieu et rend la scriptprésence de l' élément dans le document totalement inutile.
Quentin
-1

Dans mon cas, j'avais un lien symbolique pour le fichier 404 et mon Tomcat n'était pas configuré pour autoriser les liens symboliques.

Je sais que cela ne sera probablement pas la cause de la plupart des gens, mais si vous êtes désespéré, vérifiez cette possibilité au cas où.

s1m3n
la source
-2

J'ai eu le même problème et le problème était qu'il me manquait une barre oblique sur mon chemin.

j'avais

et pour le réparer, il me suffisait d'ajouter la barre oblique entre jquery-ui et jquery-ui.min:

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

espérons que cela aide: D

Tom Hoffmann V.
la source
-12

J'ai résolu mon problème en ajoutant juste $ {pageContext.request.contextPath} à mon chemin jsp. au lieu de :

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

J'ai mis:

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
Yassine Bsf
la source