Как решить ошибку “Blocked a frame with origin from accessing a cross origin frame” в WordPress?

Вопрос или проблема

Я работаю над сайтом на WordPress, на котором установлено много плагинов WordPress.

У плагинов, установленных на сайте WordPress, есть следующие опции:

enter image description here

Когда я нажимаю на опцию «Просмотр деталей», я получаю пустой экран, как показано на изображении ниже, но когда я открываю в новом окне или вкладке, все работает.

При проверке консоли, я получаю следующую ошибку (когда открытие через “Просмотр деталей” не удается на той же странице):

Блокирована попытка фрейма из определенного источника выполнить доступ к фрейму из другого источника.
  at Contents
  at Function.map
  at a.fn.init.n.fn.(anonymous function) [as contents]
  и во многих других местах. 

enter image description here

Постановка проблемы:

Я не уверен, какой файл мне нужно изменить в WordPress, чтобы решить эту ошибку. Эта ошибка, похоже, существует во всех плагинах WordPress. Она работает в новой вкладке или окне, но не работает на той же странице.

На данный момент, у меня есть доступ только к админке WordPress. Мне интересно, куда мне нужно зайти в WordPress, чтобы решить эту проблему. Нужен ли мне также доступ к серверу, чтобы внести изменения в файлы?

Эта проблема может быть связана с видео iframe, который может находиться в виджете или где-либо еще, где вы его использовали. Вы добавили какой-либо видео iframe с любого канала, у которого есть ограничения или конфиденциальность? Если это конкретный случай использования плагина, посмотрите, где вы его использовали, или проверьте код плагина или его проблемы, если они есть, то примените патч для этого.

Ваш вопрос не особо нам помогает, но я постараюсь на него ответить.

Вам потребуется следующее:

  • FTP/SFTP/доступ к файлам вашего веб-сервера
  • Базовое понимание стандартной настройки WordPress

Веб-сервер

В комментариях я пытаюсь с вами устранить проблему, но вы не смогли ответить на все мои вопросы. Предполагаю, что ваш веб-сервер — это Apache, и поэтому я прошу вас редактировать ваш вопрос/пост, чтобы включить файл .htaccess на вашем сервере. (Просто опубликуйте содержимое)

Пример стандартного файла .htaccess для WordPress

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

WordPress

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

Если вы отключили все свои плагины и восстановили/исправили свой .htaccess файл, попробуйте установить и активировать другую тему (предпочтительно одну из стандартных тем WordPress https://wordpress.org/themes/twentyseventeen/)

Включить отладку

Включите отладку в WordPress, отредактировав файл wp-config.php, расположенный в корне установки WordPress. Отредактируйте wp-config.php и установите WP_DEBUG в true:

define( 'WP_DEBUG', true );

Смотрите дополнительную документацию: https://codex.wordpress.org/Debugging_in_WordPress

Я думаю, что сервер/.htaccess настроен неправильно, потому что этого не происходит на стандартной установке WordPress. Или это комбинация неправильной настройки сервера, плохого плагина и/или темы.

Ответ или решение

Чтобы решить проблему "Blocked a frame with origin from accessing a cross-origin frame" в WordPress, важно понять, что этот вопрос обычно связан с политиками безопасности браузеров и механизмами противодействия кросс-доменному запросу. Давайте разберем шаги для устранения этой проблемы:

Шаг 1: Анализ проблемы

  1. Проверка консоли браузера: Обратите внимание на ошибку, появляющуюся в консоли. Она говорит о проблеме с доступом к кросс-доменному фрейму, что может быть связано с политиками безопасности браузера, такими как Same-Origin Policy.

  2. Диагностика плагинов: Поскольку ошибка наблюдается при взаимодействии с плагинами, полезно будет отключить все плагины и проверить, сохраняется ли проблема. Затем включите плагины поочередно, чтобы идентифицировать, какой именно вызывает ошибку.

  3. Проверка темы: Чтобы исключить влияние темы, временно активируйте одну из стандартных тем WordPress, например, Twenty Seventeen, и проверьте, исчезает ли ошибка.

Шаг 2: Настройка сервера и файлов

  1. Проверка .htaccess: Если ваш сервер использует Apache, убедитесь, что файл .htaccess не содержит редиректов или правил, которые могут вызвать кросс-доменные проблемы. Восстановите его до стандартного состояния, если это необходимо.

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
  2. Активация отладки WordPress: Включите режим отладки, отредактировав файл wp-config.php и установив WP_DEBUG в true. Это поможет выявить дополнительные ошибки.

    define( 'WP_DEBUG', true );

Шаг 3: Узкое место кросс-доменной политики

  1. Проверка источника iframe: Убедитесь, что источник iframe не устанавливает строгую политику кросс-доменного запрещения через заголовки CORS или другие методы.

  2. Использование плагинов для CORS: Может быть полезно установить плагин, который управляет заголовками CORS, чтобы разрешить легитимный кросс-доменный доступ.

Шаг 4: Дальнейшие действия

  1. Рассмотрите возможность проверки серверных настроек: Иногда причина кроется в серверных конфигурациях, поэтому доступ к серверу поможет в устранении ошибки. Если у вас нет доступа, обсудите это с администратором хостинга.

  2. Контакты с поддержкой плагина: Если конкретный плагин вызывает проблему, обратитесь в его службу поддержки для получения обновлений или патчей.

Заключение

Эта ошибка не является редкостью и часто решается путем тщательного анализа текущих настроек WordPress и серверных конфигураций. Подход на основе диагностики и устранения — наиболее эффективное решение. Надеюсь, эти шаги окажутся полезными для разрешения вашей проблемы с кросс-доменным доступом.

Оцените материал
Добавить комментарий

Капча загружается...