Форма iframe не представлена ​​в IE, но работает в Firefox - PullRequest
3 голосов
/ 17 марта 2010

У меня есть форма, которая отправляет значения на страницу в мастере. Когда я загружаю эту форму в Iframe, в Firefox все работает нормально, он возвращает меня ко второму шагу мастера и сохраняет значения, которые я заполнил. При тестировании этого в Internet Explorer я не дохожу до второго шаг, вместо этого он возвращает меня к первому шагу мастера с пустыми полями. Когда я проверяю это в Fiddler, я вижу, что я получаю другой ответ, когда я публикую форму в Iframe из Firefox по сравнению с Internet Explorer. Как я могу заставить это работать для всех браузеров? Что я делаю не так?

Вот что я получаю от Фиддлера:

Firefox

Сообщение:

Ressult Protocol    Host    URL Body    Caching Content-Type    Process Comments    Custom  
1   302 HTTP    www.dmg.eu  /brugman/budgetplanner/aanmelden.php    0   no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Expires: Thu, 19 Nov 1981 08:52:00 GMT  text/html; charset=UTF-8    firefox:6116    

Получить:

#   Result  Protocol    Host    URL Body    Caching Content-Type    Process Comments    Custom  
2   200 HTTP    www.dmg.eu  /brugman/budgetplanner/ 40.677  no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Expires: Thu, 19 Nov 1981 08:52:00 GMT  text/html; charset=UTF-8    firefox:6116

Internet Explorer

Сообщение:

Result  Protocol    Host    URL Body    Caching Content-Type    Process Comments    Custom  
73  302 HTTP    www.dmg.eu  /brugman/budgetplanner/aanmelden.php    0   no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Expires: Thu, 19 Nov 1981 08:52:00 GMT  text/html; charset=UTF-8    iexplore:536    

Получить:

Result  Protocol    Host    URL Body    Caching Content-Type    Process Comments    Custom  
74  302 HTTP    www.dmg.eu  /brugman/budgetplanner/ 0   no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Expires: Thu, 19 Nov 1981 08:52:00 GMT  text/html; charset=UTF-8    iexplore:536    

Надеюсь, кто-то знает, что такое разница :).

РЕДАКТИРОВАТЬ: (даже больше информации .......)

HTML

<%@ CODEPAGE=65001 %>
<% Response.Charset = "utf-8" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta name="robots" content="index,follow,noodp" />

<title>Hey</title>

</head>

<body class="body">

<iframe width="800px" height="1024" src="http://www.dmg.eu/brugman/budgetplanner/aanmelden.php">
</iframe>

</body>

</html>

Ответы [ 3 ]

10 голосов
/ 07 января 2011

информация в этом блоге дает полную информацию и код для разрешения:

http://viralpatel.net/blogs/2008/12/how-to-set-third-party-cookies-with-iframe.html

Как установить p3p http заголовок в ASP.Net?

HttpContext.Current.Response.AddHeader("p3p", "CP=\""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""")

Как установить p3p http заголовок в PHP?

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

Как установить p3p http заголовок в JSP?

response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'")

Как установить p3p http заголовок в ColdFusion?

<cfheader name="P3P" value="CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'" />

поднял с поста блога, на случай, если он умрет.

1 голос
/ 19 марта 2010

Следующая проблема была:

Я отправлял форму, проверял сообщение и затем назначал сеанс. Этот сеанс не был установлен, потому что в IE, когда вы хотите использовать переменные сеанса в iFrame, вы должны установить параметры заголовка.

Это код, используемый для этого:

ADD IN THIS LINE IN ORDER TO SOLVE THE INTERNET EXPLORER ALWAYS GET NEW SESSION ISSUE
header('P3P: CP="CAO PSA OUR"');

Это сделано для того, чтобы IE разрешал вам использовать сеансы.

Более подробная информация о: http://www.w3.org/P3P/

1 голос
/ 17 марта 2010

В первом случае я считаю, что последовательность запросов / ответов следующая, пожалуйста, исправьте меня, если я ошибаюсь.

Мы позвоним Brugman / budgetplanner / aanmelden.php и B /brugman/budgetplanner/.

Вы находитесь на какой-то странице, X и в FF вы делаете следующее:

Request: POST A 
Response: Redirect B (that's the 302)

Request: GET B
Response: Result of B

Однако в IE это выглядит следующим образом:

Request: POST A
Response: Redirect B (that's the 302)

Request: GET B
Response: Redirect Y (We see another 302)

Что происходит, так это то, что во втором случае B также возвращает заголовок перенаправления. Проблема не в клиенте, а в сервере.

Дополнительная информация, которую просят все остальные:

  • Что такое запрос / ответ из 4 опубликованных вами заголовков скрипача (перейдите к инспекторам, Raw View на верхней и нижней панелях, чтобы получить это). Это бы более четко показывало значения X и Y в моих приведенных выше последовательностях.
  • Что в PHP-коде сервера, проблема почти наверняка в B (/ brugman / budgetplanner /)

Сравнение тел второго запроса по IE ​​и FF должно дать вам представление о том, как сервер видит их по-разному (для сервера клиент - это просто агент, который готовит запрос). На основании разницы в запросах сервер отправляет обратно другой ответ.

...