Показать сообщение отдельно
  #5 (permalink)  
Старый 06.08.2022, 22:03
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,707

Сообщение от 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, то и второй способ заканчивается ошибкой.

Последний раз редактировалось voraa, 06.08.2022 в 22:19.
Ответить с цитированием