it-swarm.com.de

ES6-Modulunterstützung in Chrome 62/Chrome Canary 64, funktioniert nicht lokal, CORS-Fehler

Index.html

<html>
    <head>
    <script type="module">
        import {answer} from './code.js'
        console.info("It's ${answer()} time!")
    </script>
    </head>
    <body>
    </body>
</html>

code.js

export function answer(){
    return 'module';
}

Fehler: Zugriff auf das Skript unter 'file: /// C: *******/es6/code.js' von Origin 'null' wurde durch die CORS-Richtlinie blockiert: Ungültige Antwort. Origin 'null' hat daher keinen Zugriff.

Chrome sagt, dass es Module unterstützen kann und ich habe Beispiele gesehen, die im Web arbeiten. Wenn ich sie jedoch kopiere und lokal installiere, erhalte ich immer den oben genannten Fehler. Ich möchte Babel, Webpack usw. nicht verwenden. 

Ich habe versucht, das Flag "Experimental Web Platform" in Chrome und Chrome Canary zu aktivieren.

20
mark pavlis

Im Gegensatz zu regulären Skripten unterliegen ES6-Module der Same-Origin-Richtlinie . Das bedeutet, dass Sie sie nicht aus dem Dateisystem oder Cross-Origin ohne einen CORS-Header (der für lokale Dateien nicht festgelegt werden kann) import können.

Grundsätzlich müssen Sie diesen Code von einem (lokalen) Server aus ausführen oder zum Testen Same-Origin im Browser deaktivieren (dies nicht dauerhaft tun). Siehe: Zugriff auf das Bild aus Origin 'null' wurde durch die CORS-Richtlinie blockiert .

24

Ich habe das gleiche Problem ausgeführt und versucht, Es6-Code zu importieren, um ihn in einer HTML-Datei in meinem Browser zu starten, und erhalte CORS-Fehler in meiner Browserkonsole. Wenn Sie Python auf Ihrem Computer haben, können Sie einen lokalen Server auf einfache Weise erstellen: 

python3 -m http.server 8001

Aus dem Ordner, in dem Sie arbeiten.

0
Sydney C.