J'ai une soumission de formulaire via POST. Je soumets le formulaire, et tout va bien, mais si j'essaye de recharger la nouvelle page vers laquelle le formulaire va après la soumission, j'obtiens le message "Voulez-vous renvoyer les données" (FireFox). Cela peut également arriver dans d'autres navigateurs, mais je ne suis pas sûr.
Est-ce que quelqu'un connaît un moyen d'arrêter ce message pour que je puisse continuer et rafraîchir la page. Ce n'est pas bon pour les environnements de production - les utilisateurs peuvent soumettre deux fois le même formulaire!
Vous devez utiliser le modèle POST-Redirect-GET.
Faites répondre votre formulaire par une redirection vers une demande GET.
De cette façon, lorsque l'utilisateur actualise la page, il ne fait que renvoyer le GET.
Un moyen simple après response.sendRedirect
est de recharger la page de cette façon:
window.location.href = window.location.pathname;
Ça marche pour moi.
Si l'url n'a aucun paramètre, utilisez ceci -
window.location = window.location.href+"?rnd="+Math.random();
Ou bien utilisez ceci -
window.location = window.location.href+"&rnd="+Math.random();
Ça va marcher.
Ce sera une violation de la sécurité si les navigateurs le font. Par exemple, dans le traitement des cartes de crédit, le site peut facturer deux fois l'utilisateur.
Le seul moyen de contourner est d'aller dans la barre d'adresse et d'appuyer sur Entrée. Cela entraînera une nouvelle demande.