forme Iframe ne soumettant pas dans IE mais travaillant dans Firefox
-
20-09-2019 - |
Question
J'ai une forme que les valeurs de messages à une page dans un assistant. Quand je charger cette forme dans un tout Iframe fonctionne bien dans Firefox, il me rendre à la deuxième étape de l'assistant et maintient les valeurs i Remplit. Lorsque im tester cela dans Internet Explorer, je ne reçois pas au deuxième étape, au lieu de cela, il me revient à la première étape de l'assistant avec tous les champs étant vide. Quand je vérifie cela dans Fiddler je vois que im obtenir une réponse différente quand je poste le formulaire dans la Iframe de Firefox par rapport à Internet Explorer. Comment puis-je faire ce travail pour tous les navigateurs? Qu'est-ce que je fais mal?
est ce que je reviens de Fiddler:
Firefox
message:
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
Get:
# 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
message:
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
Get:
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
L'espoir que quelqu'un sait ce que le diff est :).
EDIT: (plus d'info .......)
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>
La solution
Dans le premier cas, je crois que la séquence des demandes / réponses est la suivante, s'il vous plaît me corriger si je me trompe.
Nous appellerons A Brugman / budgetplanner / aanmelden.php et B / Brugman / budgetplanner /.
Vous êtes sur une page X et FF vous procédez comme suit:
Request: POST A
Response: Redirect B (that's the 302)
Request: GET B
Response: Result of B
Cependant, dans IE, il semble que ce qui suit:
Request: POST A
Response: Redirect B (that's the 302)
Request: GET B
Response: Redirect Y (We see another 302)
Ce qui se passe est que quelque chose dans le second cas est à l'origine B pour revenir également un en-tête de redirection. Le problème est pas dans le client, mais le serveur.
Les informations complémentaires que tout le monde demande à:
- Quelle est la demande / réponse corps des 4 têtes de violonistes vous avez posté (Aller à inspecters, Vue Raw sur les deux volets supérieur et inférieur pour obtenir cela). Cela montrer plus clairement les valeurs de X et Y dans mes séquences ci-dessus.
- Qu'est-ce que dans le serveur du code PHP, le problème est presque certainement à B (/ Brugman / budgetplanner /)
La comparaison des corps des la deuxième demande selon IE et FF devrait vous donner une indication de la façon dont les voit différemment le serveur (au serveur, un client est tout simplement un agent qui prépare une demande). Sur la base de la différence dans les requêtes, le serveur renvoie une réponse différente.
Autres conseils
info sur ce blog donne les détails et le code pour résoudre:
http: // viralpatel.net/blogs/2008/12/how-to-set-third-party-cookies-with-iframe.html
Comment définir P3P en-tête http dans ASP.Net?
HttpContext.Current.Response.AddHeader("p3p", "CP=\""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""")
Comment définir P3P en-tête http en PHP?
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
Comment définir P3P en-tête http dans JSP?
response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'")
Comment définir P3P en-tête http dans ColdFusion?
<cfheader name="P3P" value="CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'" />
soulevé du billet de blog, dans le cas où il meurt.
Ce qui suit est le problème:
Je soumettais la forme, la vérification de la poste, puis fixer une session. Cette session n'a pas été définie parce que dans IE lorsque vous voulez utiliser vars session dans un iFrame vous devez définir les paramètres d'en-tête.
Ceci est le code utilisé pour le faire:
ADD IN THIS LINE IN ORDER TO SOLVE THE INTERNET EXPLORER ALWAYS GET NEW SESSION ISSUE
header('P3P: CP="CAO PSA OUR"');
Ceci est pour vous assurer que IE vous permet d'utiliser des sessions.
Plus d'informations sur: http://www.w3.org/P3P/