Le rechargement de la page à l'aide de javascript: éviter la “Publication” d'avertissement
Je suis le déclenchement d'un rechargement de la page à l'aide de javascript, en utilisant les éléments suivants:
window.location.reload(true);
Toutefois, dans certains cas (de la précédente publication), le navigateur me donne l'avertissement suivant "Pour Afficher la page de nouveau, le navigateur web doit renvoyer les informations que vous avez déjà soumis...".
Est-il possible de avoing ce message et faire juste la publication de toute façon, parce que cela pourrait être source de confusion pour les utilisateurs? Si j'ai besoin de recharger la page par un autre moyen, ainsi soit-il.
EDIT: En fin de compte, j'ai résolu le problème en ne faisant pas une publication, mais plutôt que la redirection côté client, et en ajoutant les paramètres nécessaires à la chaîne de requête, à l'aide de la requête Jquery plugin.
OriginalL'auteur Sam | 2010-09-08
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas qu'il existe un moyen de faire une publication sans le message quand vous faites les recharger.
Btw, quel est le recharger? Si c'est pour présenter les informations de POST encore une fois, je vous suggère de soumettre manuellement les données via ajax ou une forme cachée de soumission à l'aide de javascript.
Donc, si vous ne voulez pas envoyer des données POST à nouveau sur le serveur,(qui est ce que j'ai compris de l'ur réponse ci-dessus) un 303/302 rediriger vers la page d'affichage après le POST traitement des données dans le serveur de script côté. Si vous le faites, vous pouvez faire la même chose en javascript recharger les choses que vous faisiez sans aucun problème. Voir ce pour une explication de redirection après-solution de POSTES. ajaxray.com/blog/2008/01/12/...
Merci pour le commentaire, je suppose que la seule façon de faire un 302 conditionnellement serait côté serveur alors, ou est-il un moyen de le faire à l'aide de javascript?
Logiquement son côté serveur + son mieux pour émettre un 303 à ce que 302.
OriginalL'auteur mays
si vous voulez vous rafraîchir la page, y compris les données post et pas seulement de publication essayer
OriginalL'auteur Michael
La demande que vous essayez de faire de nouveau un
POST
demande, d'où l'avertissement. Vous pouvez assurez-vous que vous êtes seulement de rechargement des ressources récupérés par l'GET
demandes ou - à titre subsidiaire - soumettre un caché<form>
via lePOST
(et donc de la simulation d'un rechargement de la garantie de ne pas être mis en cache).Comme vous le savez probablement déjà, l'avertissement a à voir avec idempotence (l'absence d'effets secondaires) dans les verbes HTTP.
GET
(entre autres) sont (devraient être, au moins) a examiné la quantité, alors quePOST
demandes de permettre les changements sur le serveur. Par conséquent, le client doit demander à l'utilisateur de vérifier qu'il a l'intention de réaliser l'action.OriginalL'auteur jensgram
Le seul moyen serait de l'empêcher de reposter les paramètres. Utilisation
window.location = window.location
POST
de données lors de la conversion deGET
(je crois).OriginalL'auteur balupton
Une façon de conserver les données d'état au sein d'une page avec des identificateurs de fragment sur l'url, par exemple. #filtre1, #filtre2, puis à l'aide de la pratique hashchange plugin pour jQuery afin d'exécuter du code (c'est à dire, recharger la partie pertinente de la page avec des produits frais de résultats) lorsque le fragment d'url changements via le onhashchange événement. C'est aussi bien parce que les différents pays peuvent être mis en signet et mis en cache.
http://benalman.com/projects/jquery-hashchange-plugin/
OriginalL'auteur weston
Après:
Mettre:
Puis rechargez votre page à l'aide de jquery, et vous n'aurez pas de "...navigateur web doit renvoyer les informations..." avertissement.
OriginalL'auteur kilalile