Атрибут crossorigin тега <img> — CORS для зображення
Встановлює можливість використання технології CORS - міждоменного доступу до ресурсів. Значення anonymous (або порожній рядок) забороняє CORS-запитам доступ до персональних даних, а use-credentials - дозволяє. Без задання працюють тільки запити в межах одного домену.
автор: NagarD
Загальний опис
автор: NagarD
- Нотатка
-
Недійсне ключове слово і порожній рядок будуть оброблятися як ключове слово anonymous.
автор: NagarD
Синтаксис
<img crossorigin="anonymous">
Атрибут crossorigin може отримувати 2 значень:
-
anonymous -
забороняє CORS-запитам доступ до персональних даних, це означає , що не буде ніякого обміну обліковими даними через куки, сертифікати SSL на стороні клієнта або HTTP аутентифікації.
автор: NagarD -
use-credentials -
дозволяє CORS-запити, це означає, що запит буде надавати облікові дані.
автор: NagarD
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 13 | 8 | 6 | 15 | 12 | ≤11 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 8 | 6 |
Приклади
+ запропонувати свій приклад у пісочниці
crossorigin="anonymous" просить віддати зображення в CORS-режимі без кукі. Зовні картинка звичайна — різниця в заголовках запиту: без цього атрибута чуже зображення «забруднює» canvas, і toDataURL() кидає помилку.
<img crossorigin="anonymous" src="/img/logo.svg" alt="Лого" width="100">
Так виглядає сторінка, коли CORS-запит відхилено: замість зображення лишається сам текст alt (у другого зображення адресу навмисно зіпсовано, бо мережі в пісочниці немає).
HTML
<h3>Відповідь прийнято — зображення показано</h3>
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='90'%3E%3Crect width='160' height='90' fill='%232563eb'/%3E%3C/svg%3E" crossorigin="anonymous" width="160" height="90" alt="Логотип партнера">
<h3>Відповідь відхилено — лишився самий alt</h3>
<img src="data:image/svg+xml,%25%25zzz" crossorigin="anonymous" width="160" height="90" alt="Логотип партнера">
CSS
h3 { font-size: 15px; margin: 12px 0 6px; }
img { border: 2px dashed #94a3b8; }
Різниця між HTML 4.01 та HTML5
Атрибут crossorigin для тега <img> з’явився тільки у HTML5.
Коментарі
Коментарів ще немає — будьте першим!