Die Ausführung des Skripts wurde abgelehnt. Die strikte MIME-Typprüfung ist aktiviert.

Antworten:

58

Sie haben ein <script>Element, das versucht, externes JavaScript zu laden.

Die von Ihnen angegebene URL verweist auf eine JSON-Datei und nicht auf ein JavaScript-Programm.

Der Server meldet korrekt, dass es sich um JSON handelt, sodass der Browser mit dieser Fehlermeldung abbricht, anstatt zu versuchen, JSON als JavaScript auszuführen (was einen Fehler auslösen würde).


Der Grund dafür ist wahrscheinlich, dass Sie versuchen, eine Ajax-Anfrage zu stellen, einen Ursprungsfehler festgestellt und versucht haben, ihn zu beheben, indem Sie jQuery mitteilen, dass Sie JSONP verwenden. Dies funktioniert nur, wenn die URL JSONP bereitstellt (eine andere Teilmenge von JavaScript), was bei dieser nicht der Fall ist.

Dieselbe URL mit dem zusätzlichen Parameter für callback=the_name_of_your_callback_functiondie Abfragezeichenfolge gibt jedoch JavaScript zurück.

QUentin
quelle
4
Ich habe dies jetzt gegeben und es behebt den Fehler <script id = "data" type = "application / json"
rob.m
2
type="application/json"- Jetzt weiß der Browser, dass er nicht versucht, JavaScript zu laden, und ignoriert das Skriptelement vollständig.
Quentin
58

In meinem Fall wurde eine Datei nicht gefunden. Ich habe den Pfad zur Javascript-Datei falsch eingegeben.

mruanova
quelle
8
Das Gleiche. Ein falscher Pfad führt zu einer Fehlerantwort auf die HTML-Seite, die wiederum diese verwirrende Fehlermeldung verursacht.
Gil Roitto
2
Geniale Antwort. Vielen Dank :)
Anjana Silva
21

Dieses Ergebnis ist das erste, das in Google angezeigt wird, und ist umfassender als das, was hier passiert. Für einen Express-Server gilt Folgendes :

Ich habe versucht, über einen verschachtelten Ordner auf Ressourcen zuzugreifen.

Drinnen hatte index.htmlich

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

Die statische Route wurde montiert bei:

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

Aber das script.jsbefindet sich im verschachtelten Ordner wie in: js/myStaticApp/script.js Die Ausführung des Skripts wurde abgelehnt. Die Überprüfung des Memtyps ist aktiviert. Ich habe gerade die statische Route geändert in:

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

Jetzt funktioniert es :)

AIon
quelle
6

Versuchen Sie, express.static () zu verwenden, wenn Sie Node.js verwenden.

Sie müssen lediglich den Namen des Verzeichnisses, in dem Sie Ihre statischen Assets aufbewahren, an die Middleware express.static übergeben, um die Dateien direkt bereitzustellen. Wenn Sie beispielsweise Ihre Bilder, CSS- und JavaScript-Dateien in einem Verzeichnis mit dem Namen public aufbewahren, können Sie wie folgt vorgehen:

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

Dieser Ansatz löste mein Problem.

Vielen Dank,

Nimesh
quelle
Vielleicht ist es nicht die richtige Antwort auf diese spezielle Frage, aber es war die Lösung für mein Problem. Vielen Dank!
mcheah
2

Ich habe versehentlich die js-Datei benannt, .minanstatt .min.js...

OZZIE
quelle
1

Python-Flasche

Unter Windows werden Daten aus der Registrierung verwendet. Wenn der Wert "Inhaltstyp" in HKCR / .js nicht auf den richtigen MIME-Typ festgelegt ist, kann dies zu Problemen führen.

Öffnen Sie regedit und gehen Sie zu HKEY_CLASSES_ROOT. Stellen Sie sicher, dass der Schlüssel .js / Content Type den Wert text / javascript hat

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

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

Fügen Sie das Code-Snippet wie unten gezeigt zum Eintrag HTML hinzu. dh "index.html" in reactjs

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

Oseni Adefemi
quelle
1
Ich würde mich sehr über eine Erklärung freuen, warum dies nützlich ist.
Juan Lanus
-1

Wenn Sie eine Expressroute haben wie:

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

Versuchen Sie es für etwas Spezifischeres zu ändern:

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

Zum Beispiel.

Oder Sie stellen fest, dass Sie immer wieder dieselbe HTML-Vorlage rekursiv bereitstellen ...

Ariel
quelle
-1

Ich hatte das gleiche Problem, das ich dann so behoben habe

change "text/javascript"

zu

type="application/json"
MH Fuad
quelle
2
Dadurch wird der Browser daran gehindert, die URL anzufordern, und die scriptAnwesenheit des Elements im Dokument ist völlig sinnlos.
Quentin
-1

In meinem Fall hatte ich einen Symlink für die 404-Datei und mein Tomcat war nicht so konfiguriert, dass Symlinks zugelassen wurden.

Ich weiß, dass es wahrscheinlich nicht die Ursache für die meisten Menschen ist, aber wenn Sie verzweifelt sind, prüfen Sie diese Möglichkeit für alle Fälle.

s1m3n
quelle
-2

Ich hatte das gleiche Problem und das Problem war, dass mir ein Schrägstrich auf meinem Weg fehlte.

ich hatte

und um es zu beheben, musste ich nur den Schrägstrich zwischen jquery-ui und jquery-ui.min hinzufügen:

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

hoffe das hilft: D.

Tom Hoffmann V.
quelle
-12

Ich habe mein Problem gelöst, indem ich meinem JSP-Pfad nur $ {pageContext.request.contextPath} hinzugefügt habe. Anstatt von :

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

Ich setze :

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