Chrome 62/Chrome Canary 64中的ES6模块支持,无法在本地工作,CORS错误

jtoj6r0c  于 2023-01-28  发布在  Go
关注(0)|答案(3)|浏览(159)

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';
}

错误:CORS策略已阻止从源“null”访问位于“file:///C:********/es6/code. js”的脚本:无效响应。因此不允许访问源“null”。
Chrome说它可以支持模块,我也看到过在网络上运行的例子,但是当我复制下载并在本地运行它们时,我总是得到上面的错误。我不想使用Babel,Webpack等。
我已经尝试在Chrome和Chrome Canary中启用实验性Web平台功能标记。

f2uvfpb9

f2uvfpb91#

与常规脚本不同,ES6模块受same-origin policy约束,这意味着如果没有CORS头(不能为本地文件设置),则无法从文件系统或跨源对它们进行import
基本上,您需要从(本地)服务器运行这段代码,或者在浏览器中禁用同源功能以进行测试(不要永久性地执行此操作)。Access to Image from origin 'null' has been blocked by CORS policy.

pw136qt2

pw136qt22#

我也遇到过同样的问题,尝试导入es6代码并在浏览器中以html文件的形式启动,但在浏览器控制台中出现了CORS错误。如果您的计算机上安装了python,创建本地服务器的一个简单方法是:
python3 -m http.server 8001
从您正在使用的文件夹。

brgchamk

brgchamk3#

您可以运行任何带有--allow-file-access-from-files标志的基于chromium的浏览器,使其与file://协议一起工作。

相关问题