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.