Ich entwickle eine Webseite mit JavaScript und HTML. Alles hat gut funktioniert, als ich diese Fehlerliste von meiner HTML-Seite erhalten habe:
The resource from “https://raw.githubusercontent.com/dataarts/dat.gui/master/build/dat.gui.min.js”
was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/dev/build/three.js” was
blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/master/examples/js/renderers/CanvasRenderer.js”
was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/master/examples/js/renderers/Projector.js”
was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
The resource from “https://raw.githubusercontent.com/mrdoob/three.js/dev/build/three.js” was
blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).
Diese Fehler traten nach einem automatischen Browser-Update (Mozilla Firefox) auf. Möglicherweise wurde im Setup etwas geändert. Kennen Sie eine Möglichkeit, dieses Problem zu lösen?
javascript
mime
Sim81
quelle
quelle
Antworten:
Überprüfen Sie, ob der Dateipfad korrekt ist und die Datei vorhanden ist - in meinem Fall war dies das Problem -, als ich das Problem behoben habe. Der Fehler ist verschwunden
quelle
Dies kann durch Ändern Ihrer URL behoben werden, Beispiel schlecht:
Beispiel gut:
rawgit.com ist ein Caching-Proxy-Service für Github. Sie können auch dorthin gehen und interaktiv eine entsprechende URL für Ihre ursprüngliche raw.githubusercontent.com- URL ableiten . Siehe die FAQ
quelle
raw.githubusercontent.com
wird ersetzt, durchcdn.rawgit.com
die mit dem richtigen MIME-Typ geantwortet wird .Dieser Fehler trat in der Produktion auf, nachdem unser Entwicklerteam die Webserverkonfiguration durch Hinzufügen geändert hatte
X-Content-Type-Options: nosniff
. Aus diesem Grund war der Browser gezwungen, die Ressourcen so zu interpretieren, wie es in dencontent-type
Parametern der Antwortheader erwähnt wurde.Von Anfang an hat unser Anwendungsserver den Inhaltstyp der js-Dateien explizit als festgelegt
text/plain
. Da diesX-Content-Type-Options: nosniff
nicht im Webserver festgelegt war, interpretierte der Browser die js-Dateien automatisch als JavaScript-Dateien, obwohl der Inhaltstyp als text / plain angegeben wurde. Dies wird als MIME-Sniffing bezeichnet. Nach dem Festlegen von X-Content-Type-Options: nosniff war der Browser nun gezwungen, das MIME-Sniffing nicht durchzuführen und den Inhaltstyp wie in den Antwortheadern angegeben zu übernehmen. Aus diesem Grund interpretierte es js-Dateien als reine Textdateien und verweigerte deren Ausführung oder blockierte sie. Das gleiche wird in Ihren Fehlern gezeigt.Lösung: Lassen Sie Ihren Server die
content-type
JS-Dateien als festlegenapplication/javascript;charset=utf-8
Auf diese Weise werden alle JS-Dateien normal geladen und das Problem wird behoben.
quelle
Überprüfen Sie Ihren Pfad. Dieser Fehler tritt auf, wenn in dem angegebenen Pfad keine Datei vorhanden war.
quelle
Verwenden Sie Express?
Überprüfen Sie Ihren Pfad (beachten Sie das "
/
" nach / public /):app.use(express.static(__dirname + "/public/"));
// Hinweis: Sie benötigen das "/" nicht vor "css", da es bereits oben enthalten ist:
rel="stylesheet" href="css/style.css
Hoffe das hilft
quelle
Für Wordpress
In meinem Fall habe ich gerade den Schrägstrich "/" nach get_template_directory_uri () verpasst, sodass der resultierende / generierte Pfad falsch war:
Mein falscher Code:
wp_enqueue_script( 'retina-js', get_template_directory_uri().'js/retina.min.js' );
Mein korrigierter Code:
wp_enqueue_script( 'retina-js', get_template_directory_uri().'/js/retina.min.js' );
quelle
Dies kann daran liegen, dass der Browser nicht auf eine Datei zugreifen kann. Ich bin beim Erstellen einer Anwendung mit node.js auf diese Art von Fehler gestoßen. Sie können versuchen, die Skriptdatei direkt anzufordern (URL kopieren und einfügen) und prüfen, ob Sie sie abrufen können. Sie können dann sehen, was das eigentliche Problem ist. Dies kann an der Erlaubnis des Ordners liegen, in dem sich die Datei befindet, oder der Browser kann sie aufgrund eines falschen Pfads nicht finden. In node.js funktioniert nach Angabe der Route zur Datei alles.
quelle
MIME
Typ in Node.js angeben ? (Man sollte nicht vollständige Pfade zu allen Dateien angeben müssen, sondern nur zu den Assets-Verzeichnissen, nein?)Es könnte ein falscher Weg sein. Stellen Sie in Ihrer Haupt-App-Datei sicher, dass Sie:
app.use(express.static(path.join(__dirname,"public")));
Beispiellink zu Ihrem CSS als:
<link href="/css/clean-blog.min.css" rel="stylesheet">
Ähnliches gilt für den Link zu js-Dateien:
<script src="/js/clean-blog.min.js"></script>
quelle
Ich habe dieses Problem gelöst, indem ich den Zeichensatz in js-Dateien von UTF-8 ohne Stückliste in einfaches UTF-8 in Notepad ++ geändert habe
quelle
Ich hatte diesen Fehler, als ich den Azure-Speicher als statische Website verwendete. Die kopierten JS-Dateien hatten den Inhaltstyp als
text/plain; charset=utf-8
und ich änderte den Inhaltstyp inapplication/javascript
Es fing an zu arbeiten.
quelle
Siehe für die Protokolle HTTPS und HTTP
Wenn Sie gemischte Protokolle verwenden (dies geschieht meistens bei JSONP-Rückrufen), kann es manchmal vorkommen, dass Sie in diesem FEHLER landen.
Stellen Sie sicher, dass sowohl die Webseite als auch die Ressourcenseite dieselben HTTP-Protokolle haben.
quelle
Ich habe auch das gleiche Problem in Django Server. Also habe ich DEBUG = True in der Datei settings.py geändert, es funktioniert
quelle
Es ist mir wegen eines falschen Tags passiert. Aus Versehen füge ich die js-Datei im
link
Tag hinzu.Beispiel: (Der Falsche)
<link rel="stylesheet" href="plugins/timepicker/bootstrap-timepicker.min.js">
Es wurde gelöst, indem das richtige Tag für verwendet wurde
javascript
. Beispiel:<script src="plugins/timepicker/bootstrap-timepicker.min.js"></script>
quelle
https://cdn.rawgit.com wird heruntergefahren. Somit kann eine der alternativen Optionen verwendet werden. JSDeliver ist eine kostenlose CDN, die verwendet werden kann.
ref - https://www.jsdelivr.com/?docs=gh
quelle