Встречается на собеседованиях • сегодня

Можно ли запросить данные пользователя с iframe

Да, но с ограничениями из-за политики безопасности Same-Origin.

Если iframe с тем же доменом, можно получить доступ через:

javascript
const iframe = document.querySelector('iframe');
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;

Для кросс-доменных iframe доступ ограничен. Есть два способа:

  1. postMessage - безопасный способ обмена данными:
javascript
// Родительская страница
iframe.contentWindow.postMessage('getUserData', 'https://child-domain.com');

// Iframe
window.addEventListener('message', (e) => {
  if (e.origin === 'https://parent-domain.com') {
    e.source.postMessage(userData, e.origin);
  }
});
  1. CORS - если сервер iframe поддерживает CORS, можно делать запросы через XMLHttpRequest/Fetch с правильными заголовками.

Важно: никогда не используйте document.domain для обхода ограничений - это небезопасно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы