Сообщение от MallSerg
|
Предположительно в одном варианте при загрузке по протоколу "file://" идет преобразование в абсолютный путь тут и выскакивает CORS а в другом варианте путь относительный и CORS пропускает.
|
Везде путь абсолютный с
http://... . Как он может быть относительным, если html в локальной системе, а модули на сервере?
Я обнаружил следующее. Мой сервер на localhost передает заголовок
Access-Control-Allow-Origin: "*"
вместе с файлами .js и .mjs
Но при загрузке методом
<script type="module" src="http://localhost/tests/lm/modul1.mjs"></script>
Возникает ошибка
Access to script at 'http://localhost/tests/lm/modul1.mjs' from origin '
null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Это понятно. origin null не равен ничему.
Но почему эта же ошибка не возникает, если грузить как
<script type="module">
import "http://localhost/tests/lm/modul1.mjs";
</script>
Если все заморочки с CORS вводились в целях какой то безопасности, то получается, что это дыра. Origin то все равно null
Если сервер не передает заголовка Access-Control-Allow-Origin, то и второй способ заканчивается ошибкой.