Вот приложение, которое я написал для чтения xml sitemaps:
using System; используя System.Collections.Generic; используя System.Windows.Forms; используя System.Linq; используя System.Text; используя System.Threading.Tasks; используя System.IO; используя System.Data; используя System.Xml; namespace SiteMapReader {class Program {static void Main (string [] args) {Console.WriteLine ("Пожалуйста, введите местоположение файла"); // получить местоположение, которое мы хотим получить в файлах Sitemap из строки dirLoc = Console.ReadLine (); // получить все строки sitemaps [] sitemaps = Directory.GetFiles (dirLoc); StreamWriter sw = новый StreamWriter (Application.StartupPath + @ "\ locs.txt", true); // зацикливаем каждый файл foreach (строка sitemap в файлах Sitemap) {try {// новый экземпляр xdoc XmlDocument xDoc = новый XmlDocument (); // загружаем xml из местоположения xDoc.Load (sitemap); // цикл через каждый дочерний noed foreach (узел XmlNode в xDoc.DocumentElement.ChildNodes) {// первым узлом является url ... нужно перейти к следующему узлу loce foreach (XmlNode locNode в узле) {// имеется пару дочерних элементов узлы здесь, поэтому берут данные только из узла с именем loc if (locNode.Name == "loc") {// получают содержимое строки loc loc loc = locNode.InnerText; // пишем его на консоль, чтобы вы могли видеть ее рабочую консоль.WriteLine (loc + Environment.NewLine); // записываем его в файл sw.Write (loc + Environment.NewLine); }}}} catch {}} Console.WriteLine ("All Done :-)"); Console.ReadLine (); } static void readSitemap () {}}}
Код на вставке http://pastebin.com/yK7cSNeY
Вы не можете установить X-Frame-Options
на iframe
. Это заголовок ответа, заданный доменом, из которого вы запрашиваете ресурс (google.com.ua
в вашем примере). В этом случае они устанавливают заголовок SAMEORIGIN
, что означает, что они запретили загрузку ресурса в iframe
за пределами своего домена. Для получения дополнительной информации см. Заголовок ответа X-Frame-Options в MDN.
Быстрый просмотр заголовков (показано здесь в инструментах разработчика Chrome) показывает возвращаемое значение X-Frame-Options
от хоста.
[/g1]
Для этого вам нужно сопоставить местоположение в вашем apache или любой другой службе, которую вы используете
Если вы используете apache, то в файле httpd.conf.
<LocationMatch "/your_relative_path">
ProxyPass absolute_path_of_your_application/your_relative_path
ProxyPassReverse absolute_path_of_your_application/your_relative_path
</LocationMatch>
Решение - установить плагин для браузера.
Веб-сайт, который выдает HTTP-заголовок X-Frame-Options
со значением DENY
(или SAMEORIGIN
с другим источником сервера) не может быть интегрирован в IFRAME ... если вы не измените это поведение на установка плагина браузера, который игнорирует заголовок X-Frame-Options
(например, Хромовые заголовки X-Frame Chrome ).
Обратите внимание, что это не рекомендуется вообще по соображениям безопасности.
не очень ... Я использовал
<system.webServer>
<httpProtocol allowKeepAlive="true" >
<customHeaders>
<add name="X-Frame-Options" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
У меня была такая же проблема на моем сервере virtualmin (apache) для wordpress в поддиректории, и ни один из вышеперечисленных ответов не смог решить проблему в моем случае и все еще получал сообщение об ошибке на уровне x-frame-options на консоли, пока я попытался добавить ниже строки в файл .htaccess
, помещенный в мой каталог public_html\subdirectory\
(wordpress root):
header always set x-frame-options "SAMEORIGIN"
, и это было единственным рабочим решением в моем случае. (обратите внимание, что есть часть, содержащая always set
, а не append
или always append
)
вы можете установить параметр x-frame в веб-конфигурации сайта, который вы хотите загрузить в iframe, например
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="*" />
</customHeaders>
</httpProtocol>
Заголовок HTTP-ответа X-Frame-Options может использоваться, чтобы указать, разрешено ли браузеру отображать страницу в файлах <frame>
, <iframe>
или <object>
. Сайты могут использовать это, чтобы избежать атак с помощью clickjacking, гарантируя, что их контент не встроен в другие сайты.
Для получения дополнительной информации: https://developer.mozilla.org/en-US/docs / Web / HTTP / Headers / X-Frame-Options
У меня есть альтернативное решение для этой проблемы, которое я собираюсь продемонстрировать с помощью PHP:
iframe .php:
<iframe src="target_url.php" width="925" height="2400" frameborder="0" ></iframe>
target_url.php:
<?php
echo file_get_contents("http://www.example.com");
?>
Если вы управляете сервером, который отправляет содержимое iframe, вы можете установить настройку для X-Frame-Options
на своем веб-сервере.
Для отправки заголовок X-Frame-Options для всех страниц, добавьте это в конфигурацию вашего сайта:
Header always append X-Frame-Options SAMEORIGIN
Чтобы настроить nginx для отправки заголовка X-Frame-Options, добавьте это либо в конфигурацию вашего http, сервера или местоположения:
add_header X-Frame-Options SAMEORIGIN;
Этот параметр заголовка не является обязательным, поэтому, если опция не установлена вообще, вы дадите возможность настроить его на следующий экземпляр (например, браузер посетителей или прокси)
source: https://developer.mozilla.org/en-US/docs/Web / HTTP / X-Frame-Options
add_header Strict-Transport-Security "max-age=86400; includeSubdomains"; add_header X-Frame-Options DENY;
из nginx-фрагментов, а затем он сразу сработал.
– Zeth
20 October 2017 в 08:19