Iframe, указывающий на локальную страницу, пуст и недоступен - PullRequest
0 голосов
/ 05 марта 2012

Это странно, поскольку до недавнего времени эта функциональность работала нормально и все еще работала на другом сайте.

Я использую iframe, чтобы позволить пользователям инициировать загрузку на странице, не имеячтобы передать саму фактическую страницу, используя asp.net:

<iframe id="ifrDownload" name="ifrDownload"  scrolling="no" frameborder="0" marginwidth="0" marginheight="0" style="display: none;" src="Download.aspx"></iframe>  

Однако недавно при попытке загрузки я получил печально известную ошибку «Доступ запрещен для доступа к свойству« документ »при доступе к iframe, очевидно, локальный файлв том же домене, что и родительский, поэтому я не уверен, почему это происходит, но я уверен, что это связано со странными вещами, которые происходят, когда я проверяю страницу в Firebug.

Сайт, который работает без каких-либопри проверке проблемы отображается следующее для iframe:

<iframe id="ifrDownload" scrolling="no" frameborder="0" src="Download.aspx"  style="display: none;" marginheight="0" marginwidth="0">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> </title>
</head>
<body>
<form id="downloadForm" action="Download.aspx" method="post" name="downloadForm">
<div>
<input id="__VIEWSTATE" type="hidden" value="/wEPDwULLTExNjE3Nzc3MzlkZMnbcG6xJn5Jp/GA7fqNd/QyKuTC" name="__VIEWSTATE">
</div>
<div>
<input id="__EVENTVALIDATION" type="hidden" value="/wEWBgLTi7KCAQLnqqEBAuXC+6cLAoPKgZYKAvWdu+YGApj5qL4FFEFbauoxzxy+93iYHGZSO7dPLso=" name="__EVENTVALIDATION">
</div>

<div>
<input id="downloadButton" type="submit" style="display: none;" value="Confirm Download" name="downloadButton">
<input id="attachmentIdField" type="hidden" name="attachmentIdField">
<input id="tableFieldId" type="hidden" name="tableFieldId">
<input id="filenameField" type="hidden" name="filenameField">
<input id="whichField" type="hidden" name="whichField">
</div>

</form>
</body>
</html>
</iframe>

Но нерабочий сайт просто показывает:

<iframe id="ifrDownload" scrolling="no" frameborder="0" src="Download.aspx" style="display: none;" marginheight="0" marginwidth="0" name="ifrDownload">
<html>
<head></head>
<body></body>
</html>
</iframe>

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

Есть предложения?Я раскрасил HTML, и все, кажется, в порядке.

1 Ответ

0 голосов
/ 07 марта 2012

Хорошо, после долгих поисков; В файле Global.asax я нашел следующее:

void Application_BeginRequest(object sender, EventArgs e) {
    HttpContext.Current.Response.AddHeader("X-Frame-Options", "DENY");
}

Который отключил все параметры кросс-фрейма, фактически отключил все фреймы, ссылающиеся на страницы aspx, но не на HTML-страницы.

Удаление этого кода, который был вставлен, по-видимому, чтобы остановить межсайтовый скриптинг, устраняет проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...