Monitor404

ERR_BLOCKED_BY_RESPONSE: что значит и как исправить

ERR_BLOCKED_BY_RESPONSE — браузер получил ответ сервера, но не показал его, потому что заголовки ответа запрещают такое использование: чаще всего встраивание в iframe (X-Frame-Options, CSP frame-ancestors) или подключение ресурса с чужого сайта (Cross-Origin-Resource-Policy). Исправить это может только владелец ресурса.

Обновлено 11 октября 2026 г.

Что значит ERR_BLOCKED_BY_RESPONSE

В отличие от тайм-аутов и ошибок DNS, здесь сеть работает: сервер ответил. Но в ответе есть заголовок, который запрещает браузеру показать содержимое в данном контексте. Браузер подчиняется заголовку и блокирует загрузку.

Это не HTTP-код вроде 403: статус ответа может быть вполне нормальным, например 200. Блокировку делает сам браузер по правилам безопасности. Chrome, Яндекс Браузер и Edge ведут себя одинаково.

Какие заголовки приводят к блокировке

ЗаголовокЧто запрещает
X-Frame-Options: DENY / SAMEORIGINПоказ страницы во фрейме (iframe) на чужом сайте
Content-Security-Policy: frame-ancestorsТо же, но современным способом; перекрывает X-Frame-Options
Cross-Origin-Resource-Policy: same-origin / same-siteПодключение ресурса (картинки, скрипта, видео) со стороннего сайта
Cross-Origin-Embedder-Policy: require-corp (на вашей странице)Загрузку чужих ресурсов без CORP или CORS-разрешения

Что сделать посетителю

Обычно ошибка видна внутри страницы: вместо виджета, формы оплаты, карты или видео серое окно с сообщением «отказано в подключении» и кодом ERR_BLOCKED_BY_RESPONSE. Попробуйте:

  1. Открыть содержимое отдельно. Кликните правой кнопкой по окну или откройте оригинальную ссылку в новой вкладке: прямой переход заголовками не блокируется.
  2. Проверить в режиме инкогнито (Ctrl+Shift+N) и без расширений: иногда расширения безопасности добавляют свои заголовки.
  3. Обновить браузер.
  4. Написать владельцу сайта. Если блокируется встроенный элемент, исправление находится на его стороне.

Очистка кэша, смена DNS и перезагрузка роутера здесь не помогут: сеть работает, блокировка выполняется по заголовкам ответа.

Что делать владельцу сайта

Сначала посмотрите заголовки ответа проблемного ресурса и найдите запрещающий:

bash
curl -sI https://example.ru/widget | grep -i -E "x-frame-options|content-security-policy|cross-origin"

То же видно во вкладке Network (F12): выберите запрос и откройте «Headers». В консоли для блокировок CORP/COEP встречается сообщение вида net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin.

Страницу должны открывать во фрейме

Если ваш виджет, форма или страница должны встраиваться на другие сайты, уберите X-Frame-Options: DENY и задайте frame-ancestors явно со списком разрешённых источников. Значение ALLOW-FROM в X-Frame-Options современными браузерами не поддерживается. Если заданы оба заголовка, браузер следует frame-ancestors.

nginx: разрешить встраивание только на своём домене и у партнёра
add_header Content-Security-Policy "frame-ancestors 'self' https://partner.example" always;
Apache (нужен mod_headers)
Header always set Content-Security-Policy "frame-ancestors 'self' https://partner.example"

Если встраивание не нужно, наоборот, оставьте X-Frame-Options: SAMEORIGIN или frame-ancestors 'self': это защита от кликджекинга, и блокировка — ожидаемое поведение. Многие сервисы (почта, банки, соцсети) запрещают встраивание намеренно. Решение тут — не обходить блокировку, а использовать для встраивания официальный виджет или ссылку.

Картинки, скрипты и видео не грузятся с другого сайта

Если ресурс должны использовать другие сайты, задайте на нём Cross-Origin-Resource-Policy: cross-origin. Если вы сами включили на странице Cross-Origin-Embedder-Policy: require-corp, то каждый подключаемый чужой ресурс должен либо отдавать такой заголовок CORP, либо загружаться через CORS (атрибут crossorigin). Без этого он будет заблокирован.

nginx: ресурсы из каталога /public/ можно подключать с любых сайтов
location /public/ {
    add_header Cross-Origin-Resource-Policy "cross-origin" always;
}

После правок проверьте ответ повторно командой curl -sI и снаружи через проверку кода ответа: она показывает заголовки и цепочку редиректов страницы.

Если встроенная страница ведёт на удалённый адрес, во фрейме появится 404. Такие обращения собирает Monitor404: вы увидите, какие адреса запрашивают чаще всего.

Частые вопросы

Что значит ERR_BLOCKED_BY_RESPONSE?

Браузер получил ответ сервера, но не показал его, потому что заголовки ответа (X-Frame-Options, CSP frame-ancestors, CORP) запрещают такое использование.

Как исправить ERR_BLOCKED_BY_RESPONSE у посетителя?

Откройте содержимое в новой вкладке по прямой ссылке, проверьте в режиме инкогнито и без расширений. Если блокируется встроенный блок, исправить его может только владелец сайта.

Как исправить ERR_BLOCKED_BY_RESPONSE при iframe?

Страница-источник должна разрешать встраивание: уберите X-Frame-Options: DENY и добавьте Content-Security-Policy: frame-ancestors со списком нужных доменов. Если встраивание запрещено намеренно, используйте официальный виджет сервиса.

Это ошибка 403?

Нет. Статус ответа может быть 200: блокирует не сервер, а браузер по заголовкам безопасности.

Читайте также