Кратко
СкопированоАтрибут crossorigin
указывает браузеру, как обращаться с внешними (кроссдоменными) ресурсами, чтобы соблюсти политику Cross-Origin Resource Sharing. Используется, например, с изображениями, шрифтами, видео, аудио, скриптами и стилями, подключёнными с других доменов.
Пример
Скопировано<!-- Подключаем шрифт с другого домена --><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope&display=swap" crossorigin="anonymous"><!-- Видео с другого домена, требующее авторизации --><video controls crossorigin="use-credentials"> <source src="https://example.com/secure/video.mp4" type="video/mp4"></video>
<!-- Подключаем шрифт с другого домена --> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope&display=swap" crossorigin="anonymous" > <!-- Видео с другого домена, требующее авторизации --> <video controls crossorigin="use-credentials"> <source src="https://example.com/secure/video.mp4" type="video/mp4"> </video>
Как пишется
СкопированоАтрибут crossorigin
может принимать несколько значений:
anonymous
(значение по умолчанию) — отправляет запрос без учётных данных (куки, заголовков авторизации, клиентских сертификатов). Ответ должен содержать заголовокAccess
.- Control - Allow - Origin use
— отправляет запрос с учётными данными.- credentials
В случае использования use
ответ от сервера должен включать:
Access-Control-Allow-Origin: [точный домен]Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: [точный домен] Access-Control-Allow-Credentials: true
Применяется в таких тегах, как: <img>
, <script>
, <link>
, <audio>
, <video>
, <iframe>
, <use>
(в SVG).
Как понять
СкопированоБраузер защищает сайты от того, чтобы внешние ресурсы получали доступ к приватной информации пользователя, например, к куки или токенам. Атрибут crossorigin
явно говорит браузеру, как вести себя при загрузке ресурсов с других источников, особенно когда результат нужен для JavaScript. К примеру, для отрисовки изображения на <canvas>
или доступа к видео.
Если политика не соблюдена — может не загрузиться ресурс или возникнуть CORS-ошибка в консоли.
Подсказки
Скопировано💡 Если вы подключаете ресурсы из CDN (сети доставки содержимого) и они не загружаются, попробуйте добавить crossorigin
.
💡 Без crossorigin
некоторые теги работают, но доступа к данным ресурса через JavaScript не будет. К примеру, скрипт для анализа аудио.
💡 Неправильное ключевое слово или пустая строка, будет обработано как anonymous
.
💡 Проверяйте консоль браузера: она подскажет, если нарушена политика CORS.