Bouton retour et repost de IE6
-
20-08-2019 - |
Question
Mon site Web est un site Web asp.net-mvc (beta1), entièrement validé et compatible avec tous les navigateurs (sauf évidemment dans IE6 pour cette question).
Je peux reproduire l'erreur en procédant comme suit:
- Effectuer une requête POST avec certains paramètres
- Dans les résultats, cliquez sur l'un des liens GET générés
- Appuyez sur la touche " BACK " bouton de la page résultante.
Parfois, le bouton Précédent ne fait rien (la page de la dernière demande reste affichée à l'écran, le statut indique & "; Fait &";).
Parfois, une page complètement vide est affichée avec l'URL correcte et le & "Terminé &"; statut
Parfois, la page res: //ieframe.dll/repost.htm est affichée avec & "Impossible de trouver le serveur &"; Titre.
Je n'ai pas encore trouvé le facteur déclenchant.
J'imagine qu'IE ne met rien en cache, il ré-affichera donc l'URL. Cependant, rien ne semble frapper ma manette.
Que se passe-t-il? Comment puis-je commencer à déboguer ceci ou même mieux: résoudre ce problème?
La solution
Implémentez POST + REDIRECT + GET ?
Autres conseils
IE ne republiera pas sans demander à l'utilisateur. Si Internet Explorer ne met pas en cache la page de résultats (vérifiez les en-têtes de cache que vous envoyez), vous devriez obtenir l'invite de republication. Je ne sais pas pourquoi vous obtiendrez 'Serveur introuvable' à la place - cela ressemble à une installation confuse d'IE. (Est-ce une configuration multi-IE?)
Comme Cletus l'a mentionné, post-redirect-get est généralement souhaitable pour les formulaires de publication réussis.
Pour analyser le trafic entre le navigateur et le serveur, vous devez placer Fiddler dans Ainsi, vous saurez si IE6 renvoie au serveur une requête en appuyant sur le bouton Précédent.