2008-10-27 6 views
1

Nous avons un POST à ​​une procédure de base de données PL/SQL qui (a) effectue certaines opérations de base de données basées sur les paramètres POST et (b) redirige l'utilisateur vers un page montrant les résultats. Le problème est que lorsque l'utilisateur actualise la page de résultats d'un navigateur, il a toujours la requête d'origine, il appelle donc la procédure de base de données et renvoie les paramètres.Obtenir Post-Redirect - Actualiser pour appeler la page de redirection plutôt que la requête d'origine

Il y a des choses que nous pouvons faire avec l'état d'économie si mauvaises choses ne se produisent pas si la demande est envoyée à nouveau. Mais cela m'a fait me demander.

Existe-t-il un moyen d'indiquer au navigateur de définir l'URL de l'appel de redirection, et non la demande de l'utilisateur d'origine? Ce serait probablement dans la redirection elle-même, ou en Javascript sur la page cible.

Répondre

1

Vous ne mentionnez pas ce que vous utilisez pour diffuser la page, mais assurez-vous d'effectuer une redirection EXTERNAL. Certaines plates-formes redirigent en interne au sein d'un site.

Par exemple, avec Apache HTTP Server, vous devez spécifier le drapeau force redirect dans mod_rewrite: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule

La 4ème réponse here a une explication décente de cela aussi.

1

La solution canonique est assez bien décrite sur Wikipédia. Voir Post/Redirect/Get. Vous souhaitez que le code qui gère le POST redirige vers un GET lorsque le travail est terminé, car l'actualisation d'un GET ne permet pas de renvoyer des données de formulaire.