Rifiutato di eseguire lo script, il controllo rigoroso del tipo MIME è abilitato?


Risposte:


60

Hai un <script>elemento che sta tentando di caricare un JavaScript esterno.

L'URL fornito punta a un file JSON e non a un programma JavaScript.

Il server segnala correttamente che si tratta di JSON, quindi il browser interrompe il messaggio di errore invece di provare a eseguire JSON come JavaScript (che genererebbe un errore).


È probabile che il motivo alla base di ciò sia che stai tentando di effettuare una richiesta Ajax, hai riscontrato un errore di origine incrociata e hai provato a risolverlo dicendo a jQuery che stai utilizzando JSONP. Funziona solo se l'URL fornisce JSONP (che è un diverso sottoinsieme di JavaScript), cosa che questo non fa.

Tuttavia, lo stesso URL con il parametro della stringa di query aggiuntivo callback=the_name_of_your_callback_functionrestituisce JavaScript.


4
ora ho dato questo e risolve l'errore <script id = "data" type = "application / json"
rob.m

2
type="application/json"- Ora il browser sa che non sta tentando di caricare JavaScript, quindi ignora completamente l'elemento script.
Quentin

59

Nel mio caso si trattava di un file non trovato, ho digitato in modo errato il percorso del file javascript.


8
Lo stesso. Il percorso errato genera una risposta di pagina html di errore, che a sua volta causa questo messaggio di errore confuso.
Gil Roitto

2
Risposta geniale. Grazie :)
Anjana Silva

21

Questo risultato è il primo che compare in Google ed è più ampio di quello che sta succedendo qui. Quanto segue si applicherà a un server espresso :

Stavo cercando di accedere alle risorse da una cartella nidificata.

Dentro index.htmlavevo

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

Il percorso statico è stato montato in:

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

Ma script.jssi trova nella cartella nidificata come in: js/myStaticApp/script.js rifiutato di eseguire lo script, il controllo del tipo di meme è abilitato. Ho appena cambiato la route statica in:

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

Ora funziona :)


6

Prova a usare express.static () se stai usando Node.js.

È sufficiente passare il nome della directory in cui si conservano le risorse statiche al middleware express.static per iniziare a servire direttamente i file. Ad esempio, se mantieni le immagini, i file CSS e JavaScript in una directory denominata public, puoi eseguire le seguenti operazioni:

cioè: app.use (express.static ('public'));

Questo approccio ha risolto il mio problema.

Grazie,


potrebbe non essere la risposta corretta a questa domanda specifica, ma era la soluzione al mio problema. Grazie!
mcheah

4

Dopo aver cercato per un po 'mi sono reso conto che questo errore nel mio bit di Windows 10 64 era correlato a JavaScript. Per vederlo, vai sul tuo browser DevTools e conferma prima quello. Nel mio caso mostra un errore del tipo "Il tipo MIME ('application / javascript') non è eseguibile".

Se è così, ho trovato una soluzione. Ecco l'accordo:

  1. Prendendo in prestito l'utente "ilango100" su https://github.com/jupyterlab/jupyterlab/issues/6098 :

Ho avuto lo stesso identico problema qualche tempo fa. Penso che questo problema sia specifico di Windows. È dovuto al tipo MIME errato impostato nel registro di Windows per i file javascript. Ho risolto il problema modificando il registro di Windows con il tipo di contenuto corretto:

regedit -> HKEY_LOCAL_MACHINE \ Software \ Classes -> Vedrai molte cartelle per ciascuna estensione di file -> Scorri verso il basso fino al registro ".js" e selezionalo -> A destra, se il valore "Tipo di contenuto" è diverso da application / javascript, allora questo sta causando il problema. Fare clic con il tasto destro del mouse su Tipo di contenuto e modificare il valore in application / javascript

inserisci qui la descrizione dell'immagine

Riprova nel browser. "

Dopo di che ho capito che l'errore cambia. Non si apre nemmeno più automaticamente nel browser. PGAdmin, invece, sarà aperto nella barra laterale (vicino al calendario / orologio). Provando ad aprire direttamente nel browser ("Nuova finestra PGAdmin 4 ...") non funziona neanche.

SOLUZIONE FINALE: clicca su "Copia URL server" e incollalo nel tuo browser. Ha funzionato per me!


1
+1 questo ha funzionato per me. Ho apportato la modifica nel registro da utilizzare application/javascriptper l' .jsestensione. Quindi ho chiuso e riaperto pgAdmin e si è caricato bene (senza copiare l'URL del server). Uso Windows 8.1 e PostgresSQL 13.
Eric Mutta

2

Ho accidentalmente chiamato il file js .mininvece di .min.js...


1

Fiaschetta in pitone

Su Windows , utilizza i dati del registro, quindi se il valore "Tipo di contenuto" in HKCR / .js non è impostato sul tipo MIME corretto, può causare il problema.

Apri regedit e vai su HKEY_CLASSES_ROOT assicurati che la chiave .js / Content Type abbia il valore text / javascript

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

HKEY_CLASSES_ROOT\.js
    Content Type    REG_SZ    text/javascript

0

Aggiungi lo snippet di codice come mostrato di seguito alla voce html. cioè "index.html" in reactjs

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


1
Apprezzerei molto una spiegazione sul perché è utile.
Juan Lanus

-1

Se hai un percorso espresso come:

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

Prova a cambiarlo per qualcosa di più specifico:

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

Per esempio.

Oppure potresti ritrovarti a servire in modo ricorsivo lo stesso modello HTML più e più volte ...


-1

Ho avuto lo stesso problema quindi ho risolto in questo modo

change "text/javascript"

per

type="application/json"

2
Ciò impedisce al browser di effettuare la richiesta dell'URL in primo luogo e rende del scripttutto inutile la presenza dell'elemento nel documento.
Quentin

-1

Nel mio caso avevo un collegamento simbolico per il file 404 e il mio Tomcat non era configurato per consentire collegamenti simbolici.

So che non è probabile che sia la causa per la maggior parte delle persone, ma se sei disperato, controlla questa possibilità per ogni evenienza.


-2

ho avuto lo stesso problema e il problema era che mi mancava una barra sul mio percorso.

avevo

e per risolverlo avevo solo bisogno di aggiungere la barra tra jquery-ui e jquery-ui.min:

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

spero che questo aiuti: D


-12

Ho risolto il mio problema aggiungendo solo $ {pageContext.request.contextPath} al mio percorso jsp. invece di :

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

Ho impostato :

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.