Ecmascript 6 我如何获得';导入&x27;通过file://协议在网页中工作
大多数浏览器都支持“导入”,因此以下功能应该可以正常工作:Ecmascript 6 我如何获得';导入&x27;通过file://协议在网页中工作,ecmascript-6,Ecmascript 6,大多数浏览器都支持“导入”,因此以下功能应该可以正常工作: /** * Adder.mjs */ class Adder { add(n1, n2) { return n1 + n2; } } export default Adder; test.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Import Test
/**
* Adder.mjs
*/
class Adder {
add(n1, n2) {
return n1 + n2;
}
}
export default Adder;
test.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Import Test</title>
<script type="module">
import Adder from "./Adder.mjs";
var adder = new Adder();
var result = adder.add(1, 1);
console.log("Result: " + result.toString());
</script>
</head>
<body>
</body>
</html>
正如康奈索指出的那样: “模块不能在文件://协议上工作。您需要一个Web服务器。”
还值得注意的是,Apache不支持.mjs文件扩展名,ES6模块的后缀必须是.js。您是否检查过您引用的是
Adder.mjs
,而不是Adder.js
?此外,您的代码在Adder.mjs
中有Class
而不是Class
。文件Adder.mjs
是否在Test
文件夹中?名称的大小写是否正确?不是adder.mjs
模块不在文件://
协议上工作。您需要一个web服务器。已安装apache并加载网页,控制台中出现以下错误:未能加载模块脚本:服务器以非JavaScript MIME类型“”响应。根据HTML规范对模块脚本执行严格的MIME类型检查。这通常意味着您有一个404。检查网络选项卡。
Access to script at 'file:///home/gso/eclipse-workspace/Test/Adder.js' from origin 'null' has been blocked by CORS policy: The response is invalid.
test.html:7 GET file:///home/gso/eclipse-workspace/Test/Adder.js net::ERR_FAILED