Я пытаюсь импортировать модуль в свой файл index.html.
Вот код:
// Index.html:
<!doctype html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title></title>
</head>
<body>
<div></div>
<script type = "module" src = "module.js"></script>
<script type = "text/javascript">
import { addTextToBody } from 'module.js';
addTextToBody('some text here');
</script>
</body>
</html>
И js:
export function addTextToBody(text) {
const div = document.createElement('div');
div.textContent = text;
document.body.appendChild(div);
}
Я получаю следующие ошибки:
Uncaught SyntaxError: Неожиданный токен {- Строка 18
Доступ к скрипту в 'module.js' из источника 'null' был заблокирован политикой CORS: недопустимый ответ. Следовательно, к источнику 'null' доступ не разрешен.
Как я могу это исправить?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пытаться:
import { addTextToBody } from './module.js';
Где находится модуль по отношению к index.html?
Оба файла находятся в одной папке. Я корень папки на том же уровне
module.js должен быть ./module.jsimport требует, чтобы сценарий был типа module, а не только импортированный сценарий.<head> (в самом начале).Следующий пример работает (я вырезал ненужные части):
<!-- index.html -->
<meta charset = "utf-8">
<script type = "module">
import { addTextToBody } from './module.js';
addTextToBody('some text here');
</script>
// module.js
export function addTextToBody(text) {
const div = document.createElement('div');
div.textContent = text;
document.body.appendChild(div);
}
Приведенный выше код будет работать с Firefox, но не с Chrome. Похоже, вы используете Chrome (я предполагаю, что из вашего сообщения об ошибке). Chrome строго запрещает доступ к ресурсам по протоколу file://. Есть несколько решений:
Используйте
<script type = "module">даже для встроенного скрипта