2010-03-17 120 views
3

我有一個表單將值發佈到嚮導中的頁面。當我在iframe中加載這個表單時,一切都在Firefox中正常工作,它會讓我進入嚮導的第二步,並維護我填寫的值。當我在Internet Explorer中對此進行測試時,我沒有進入第二步一步,而不是它返回到嚮導的第一步,所有字段爲空。當我在Fiddler中檢查這一點時,我發現即時通訊從IE瀏覽器與Internet Explorer發佈表單時的不同反應。我怎樣才能使所有瀏覽器的這項工作?我究竟做錯了什麼?iframe表單不提交在IE中,但在火狐工作

這是我從提琴手回來:

火狐

帖子:

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> 
+0

您如何提交表格?用'輸入'鍵或鼠標按鈕?當按下'enter'鍵時,MSIE往往會做一些完全意想不到的事情。此外,響應頭文件並沒有真正的興趣,調試請求頭文件(哪些參數已被髮送?等)和PHP代碼(哪些行被執行,哪些不是?等)會產生更多關於該問題的有趣見解。 – BalusC 2010-03-17 13:19:20

+0

我正在使用提交按鈕,我正在點擊該按鈕。 – Younes 2010-03-17 13:26:04

+0

好的,如果您根據請求添加更多調試信息,那麼我們可能會指出原因。只有響應頭文件沒有多大用處。目前還不清楚是什麼請求和代碼實際上做了什麼:) – BalusC 2010-03-17 13:31:40

回答

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) 

正在發生的事情是,在第二種情況下,導致B也返回一個重定向頭。問題不在於客戶端,而在於服務器。

的附加信息每個人都在詢問:

  • 什麼是您發佈的4名小提琴手頭的請求/響應體(轉到inspecters,原始視圖的頂部和底部窗格來得到這個)。這將更清楚地顯示我上面的序列中的X和Y的值。
  • 什麼是服務器的PHP代碼,但問題是幾乎可以肯定在B(/布魯格曼/ budgetplanner /)

比較第二請求的機構按IE和FF應該給你的指示服務器如何看待它們(服務器,客戶端只是準備請求的代理)。根據請求的不同,服務器發回不同的響應。

+0

問題的確是預算計劃者,如果會話未設置,它將重定向迴向導中的第一步。我在第一部分瞎了眼,提交... – Younes 2010-03-19 07:32:05

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/

+1

請注意,設置P3P標頭意味着您要對如何使用您設置的cookie做出具有法律約束力的聲明。所以,請確保您的P3P聲明是正確的。 – EricLaw 2010-03-19 18:15:27

10

信息給出了全部細節和代碼來解決:

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\""") 

如何在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'" /> 

解除博客文章,萬一它死了。

+0

啊,剛剛救了我幾個小時的調試!謝謝 – cantaffordretail 2012-11-15 15:07:52

相關問題