Проблема с передачей параметров строки запроса через Http. Получить в iframe в IE - PullRequest
2 голосов
/ 25 августа 2009

Это продолжение моего предыдущего вопроса: Проблема передачи параметров через Iframe в IE . Что никогда не было решено.


Вот суть этого:

Я пытаюсь выполнить HTTP GET из мой сайт на другой сайт, который введено через iframe.

На Firefox вы можете увидеть в источнике что в фрейме есть правильный URL SRC вместе с этим правильно параметры - и это работает.

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

Есть ли что-то в IE, что не позволяет передавать параметры через iframe в строке запроса?

Я пытался обновить iframe в IE, я пытался обновить мою страницу & iframe в IE, и я пытался скопировать URL-адрес и снова вставить его в iframe src (заставляет его обновить как будто я только что ввел его в адресная строка для этого окна iframe). Все еще не повезло!

Кто-нибудь знает, почему это происходит, или есть предложения, чтобы попытаться получить вокруг этого?

Что касается кода, все, что он делает, это создает код из бэкэнд-кода на странице загрузить и установить атрибут src с заднего конца ...

//Backend code to set src
mainIframe.Attributes["src"] = srcWeJustCreated;

//Front end iframe code
<iframe id="mainIframe" runat="server" />

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

РЕДАКТИРОВАТЬ: Изменены учетные данные учетной записи. Пожалуйста, используйте этот вместо
Имя пользователя: матовый
Пароль: globalbuying

Пожалуйста, следуйте этой ссылке , чтобы перейти на страницу входа. Как только вы войдете в систему с указанными выше учетными данными, вы попадете на главную страницу бэкэнда. Нажмите на изображение слева с надписью «Каникулы», которое откроет вам страницу с iframe и выполнит Http Get from from.

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

Спасибо,
Matt

Ответы [ 3 ]

12 голосов
/ 04 сентября 2009

Проработав мой путь через HTTP-запросы с помощью Fiddler2 , сравнивая различные браузеры, я обнаружил, что IE прекрасно выполняет запрос, но не может установить какие-либо файлы cookie в iframe.

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

Оказывается, это известное ограничение безопасности: IE блокирует куки в iframes. Но это можно преодолеть с помощью Платформа для настроек конфиденциальности (P3P) .

Вот несколько ссылок, которые помогут вам решить проблему. Начнем с другого (отвеченного) вопроса о StackOverflow:

0 голосов
/ 03 сентября 2009

Похоже, что амперсанды в URL-адресе iframe закодированы в формате HTML (&amp;). Я думаю, что это может привести к тому, что IE задохнется при определении имен параметров. Проблема все еще возникает, если вы используете простые амперсанды в URL?

Если кодировка атрибута src выполняется неявно, вы можете рассмотреть возможность использования элемента управления Literal для целей тестирования и установить для его свойства Text весь тег iframe, чтобы избежать нежелательного кодирования.

0 голосов
/ 31 августа 2009

Пример страницы, которую вы предоставили, работает для меня в IE8. Iframe не такой высокий, как в chrome, но в нем есть правильная страница.

Кроме того, обратите внимание, что передача учетных данных для входа в систему через строку запроса крайне небезопасна и открыта для различных эксплойтов.

...