У меня есть 2 веб-сайта http://www.aaa.com и http://www.bbb.com, и им нужно показать их.
Теперь я помещаю iframe в index.html
и загружаю на aaa.com. Это нормально для интерфейса, но он не работает для бэкэнд, где отображается пустая страница.
Может ли кто-нибудь предложить мне, как я могу решить эту проблему?
По умолчанию WordPress отправляет HTTP-заголовок для предотвращения внедрения iframe в /wp_admin/
и /wp-login.php
:
X-Frame-Options: SAMEORIGIN
Это функция безопасности. Если вы хотите удалить этот заголовок, удалите фильтры:
remove_action( 'login_init', 'send_frame_options_header' ); remove_action( 'admin_init', 'send_frame_options_header' );
Но вы должны действительно использовать многоуровневую функцию, как предложил Том Дж.
Пытался расширить версию @toscho
//remove the restriction remove_action( 'login_init', 'send_frame_options_header' ); remove_action( 'admin_init', 'send_frame_options_header' ); //for added security add_action( 'login_init', 'Access_Control_Allow_Origin' ); add_action( 'admin_init', 'Access_Control_Allow_Origin' ); function Access_Control_Allow_Origin(){ $origin=get_http_origin(); $allowed_origins=array(//add your domains or keeps empty "aaa.com", "bbb.com", ); $allowed=false; if(count($allowed_origins)>0){ foreach($allowed_origins as $allowed_origin){ if (strstr($origin,$allowed_origin)){ $allowed=true; break; } } }else{ $allowed=true; } if($allowed){ return true; }else{ send_origin_headers(); } }