Sowohl in Bild- als auch in Skript-Tags.
Mein Verständnis war, dass Sie auf Skripte und Bilder in anderen Domänen zugreifen können. Wann verwendet man dieses Attribut?
Ist dies der Fall, wenn Sie die Möglichkeit anderer Personen einschränken möchten, auf Ihre Skripte und Bilder zuzugreifen?
Bilder:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-crossorigin
Skripte:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
quelle
Purpose of the crossorigin attribute …?
Die Antwort finden Sie in der Spezifikation .
Für
img
:und für
script
:quelle
canvas
Elemente.So haben wir das
crossorigin
Attribut erfolgreich in einemscript
Tag verwendet:Problem, das wir hatten: Wir haben versucht, js-Fehler auf dem Server mit zu protokollieren
window.onerror
Fast alle Fehler, die wir protokollierten, hatten diese Meldung:
Script error.
und wir erhielten nur sehr wenige Informationen darüber, wie diese js-Fehler behoben werden können.Es stellt sich heraus, dass die native Implementierung in Chrome Fehler meldet
wird gesendet,
message
alsScript error.
ob das angeforderte statische Asset gegen die Richtlinie des Browsers mit demselben Ursprung verstößt .In unserem Fall haben wir das statische Asset von einer CDN aus bedient.
Die Art und Weise, wie wir es gelöst haben, war das Hinzufügen des
crossorigin
Attributs zumscript
Tag.PS Habe alle Infos von dieser Antwort
quelle
Wenn Sie lokal einen schnellen Code entwickeln und Chrome verwenden, liegt ein Problem vor. Wenn Ihre Seite unter Verwendung einer URL der Form "file: // xxxx" geladen wird, schlägt der Versuch, getImageData () auf der Zeichenfläche zu verwenden, fehl und löst den originalen Sicherheitsfehler aus, selbst wenn Ihr Bild von derselben abgerufen wird Verzeichnis auf Ihrem lokalen Computer als HTML-Seite, die die Zeichenfläche rendert. Wenn Ihre HTML-Seite abgerufen wird, sagen Sie:
file: // D: /wwwroot/mydir/mytestpage.html
und Ihre Javascript-Datei und Bilder werden abgerufen von beispielsweise:
file: // D: /wwwroot/mydir/mycode.js
file: // D: /wwwroot/mydir/myImage.png
Trotz der Tatsache, dass diese sekundären Entitäten vom selben Ursprung abgerufen werden, wird der Sicherheitsfehler immer noch ausgelöst.
Aus irgendeinem Grund setzt Chrome das Ursprungsattribut der erforderlichen Entitäten auf "null", anstatt den Ursprung richtig festzulegen. Dadurch ist es unmöglich, Code mit getImageData () zu testen, indem Sie einfach die HTML-Seite in Ihrem Browser öffnen und lokal debuggen.
Aus demselben Grund funktioniert es auch nicht, die Eigenschaft crossOrigin des Bildes auf "anonym" zu setzen.
Ich versuche immer noch, eine Problemumgehung dafür zu finden, aber es scheint wieder einmal, dass das lokale Debuggen von Browser-Implementierern so schmerzhaft wie möglich gemacht wird.
Ich habe gerade versucht, meinen Code in Firefox auszuführen, und Firefox macht es richtig, indem es erkennt, dass mein Bild vom selben Ursprung stammt wie die HTML- und JS-Skripte. Daher würde ich einige Hinweise begrüßen, wie Sie das Problem in Chrome umgehen können, da der Debugger im Moment, während Firefox funktioniert, schmerzlich langsam ist und einen Schritt von einem Denial-of-Service-Angriff entfernt ist.
quelle
Ich habe herausgefunden, wie Sie Google Chrome davon überzeugen können, file: // Verweise zuzulassen, ohne einen Ursprungsfehler auszulösen.
Schritt 1: Erstellen Sie eine Verknüpfung (Windows) oder eine gleichwertige Verknüpfung in anderen Betriebssystemen.
Schritt 2: Stellen Sie das Ziel auf Folgendes ein:
"C: \ Programme (x86) \ Google \ Chrome \ Application \ chrome.exe" - Erlaubt den Dateizugriff aus Dateien
Dieses spezielle Befehlszeilenargument --allow-file-access-from-files - weist Chrome an, file: // Verweise auf Webseiten, Bilder usw. zu verwenden, ohne bei jedem Versuch, diese zu übertragen, Fehler zwischen den Ursprüngen auszulösen Zum Beispiel Bilder auf eine HTML-Leinwand. Es funktioniert unter meinem Windows 7-Setup, aber es lohnt sich zu prüfen, ob es auch unter Windows 8/10 und verschiedenen Linux-Distributionen funktioniert. Wenn dies der Fall ist, ist das Problem behoben. Die Offline-Entwicklung wird wie gewohnt fortgesetzt.
Jetzt kann ich Bilder und JSON-Daten aus Datei: // URIs referenzieren, ohne dass Chrome Ursprungsfehler auslöst, wenn ich versuche, Bilddaten auf eine Zeichenfläche oder JSON-Daten auf ein Formularelement zu übertragen.
quelle