3

ウィザードのページに値を投稿するフォームがあります。このフォームを iframe にロードすると、すべてが Firefox で正常に動作し、ウィザードの 2 番目のステップに進み、入力した値が維持されます。Internet Explorer でこれをテストすると、2 番目のステップに到達しません。ステップではなく、すべてのフィールドが空白のウィザードの最初のステップに戻ります。これを Fiddler で確認すると、Firefox から Iframe にフォームを投稿すると、Internet Explorer とは異なる応答が得られることがわかります。これをすべてのブラウザで機能させるにはどうすればよいですか? 私は何を間違っていますか?

これは、Fiddler から返されるものです。

ファイアフォックス

役職:

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

インターネットエクスプローラ

役職:

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>
4

3 に答える 3

10

このブログの情報は、解決するための完全な詳細とコードを提供します:

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

ASP.Netでp3p httpヘッダーを設定するには?

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

PHPでp3p httpヘッダーを設定するには?

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

JSPでp3p httpヘッダーを設定するには?

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

ColdFusion で p3p http ヘッダーを設定するには?

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

死ぬ場合に備えて、ブログ投稿から削除されました。

于 2011-01-07T10:18:47.513 に答える
1

以下が問題でした。

フォームを送信し、投稿を確認してからセッションを設定していました。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/

于 2010-03-19T07:31:13.207 に答える
1

最初のケースでは、リクエスト/レスポンスのシーケンスは次のとおりだと思います。間違っていたら訂正してください。

A を 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)

何が起こっているかというと、2 番目のケースで何かが原因で、B もリダイレクト ヘッダーを返すようになっているということです。問題はクライアントではなくサーバーにあります。

他の誰もが求めている追加情報:

  • 投稿した 4 つのフィドラー ヘッダーの要求/応答の BODY は何ですか (これを取得するには、インスペクターに移動し、上部と下部の両方のペインで Raw View に移動します)。これにより、上記のシーケンスで X と Y の値がより明確に表示されます。
  • サーバーの PHP コードには何がありますか。問題はほぼ確実に B (/brugman/budgetplanner/) にあります。

IE と FF に従って 2 番目の要求の本文を比較すると、サーバーがそれらをどのように異なって認識しているかがわかります (サーバーにとって、クライアントは要求を準備する単なるエージェントです)。リクエストの違いに基づいて、サーバーは異なるレスポンスを返します。

于 2010-03-17T14:19:18.087 に答える