別のファイルから関数をインポートしたJavaScriptファイルを使用してHTMLページを起動しようとしたときに、このエラーが発生しました。
Access to script at 'file:///C:/Users/bla/Desktop/stuff/practice/jsPractice/funcexecute.js'
from Origin 'null' has been blocked by CORS policy:
Cross Origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Failed to load resource: net::ERR_FAILED
これがhtmlコードです:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=Edge'>
<title>Page Title</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
<script type = 'module' src='funcexecute.js'></script>
</body>
</html>
htmlから呼び出されたjsファイル:(funcexecute.js)
import sumup from '/funcfile.js';
console.log(sumup(1,2));
インポートされたモジュール:(funcfile.js)
function sumup(num1, num2){
return num1+num2;
}
export default sumup;
どうすれば修正できますか? (私はvscodeを使用しています)
サーバーを使用しないと、スクリプトファイルをモジュールとして使用できません。 こちらをご覧ください
ここにいくつかのオプションがあります
http-server .
を実行します)つまり、fileプロトコルではtype="module"
を使用できません