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平台功能标记。
3条答案
按热度按时间f2uvfpb91#
与常规脚本不同,ES6模块受same-origin policy约束,这意味着如果没有CORS头(不能为本地文件设置),则无法从文件系统或跨源对它们进行
import
。基本上,您需要从(本地)服务器运行这段代码,或者在浏览器中禁用同源功能以进行测试(不要永久性地执行此操作)。Access to Image from origin 'null' has been blocked by CORS policy.
pw136qt22#
我也遇到过同样的问题,尝试导入es6代码并在浏览器中以html文件的形式启动,但在浏览器控制台中出现了CORS错误。如果您的计算机上安装了python,创建本地服务器的一个简单方法是:
python3 -m http.server 8001
从您正在使用的文件夹。
brgchamk3#
您可以运行任何带有
--allow-file-access-from-files
标志的基于chromium的浏览器,使其与file://
协议一起工作。