Pour afficher la page de nouveau, Internet Explorer doit renvoyer
Dans mon ASP.NET WebForms page j'ai une fenêtre Modale qui s'affiche. Le code javascript pour afficher cette fenêtre modale est comme suit:
function OpenMailAddressWin(subscriberContactRelationGid, routeId, btn) {
window.showModalDialog("SubscriberSecondaryAddress.aspx" + BuildQueryStringValuesForSubscriber(subscriberContactRelationGid, routeId, returntxtReceiptDate().value), this, strWindowFeatures + ";scroll:no;dialogWidth:442px;dialogHeight:350px");
location.reload(true);
}
Après la fenêtre modale est fermé, j'ai besoin de rafraîchir la page parent (d'où la localisation.reload(true); déclaration à la fin) pour que les modifications apportées dans la fenêtre modale pour prendre effet.
Maintenant le truc c'est que parfois (pas tout le temps, infuriatingly) quand je ferme cette fenêtre modale-je obtenir un popup d'alerte qui dit:
" Pour afficher la page de nouveau, Internet Explorer doit renvoyer les informations que vous avez récemment présenté.
Si vous faites un achat, vous devez cliquer sur Annuler pour éviter une double transaction. Sinon, cliquez sur Réessayer pour afficher la page de nouveau."
Des idées pourquoi ce qui se passe?
Le message pourrait le suggérer que l'action qui a dirigé l'utilisateur de la fenêtre parent a été posté. Navigateurs seront toujours avertir l'utilisateur si ils sont à la réexpédition d'un post, car, par définition, le verbe post qui provoque quelque chose à changer. Peut-être que parfois l'utilisateur visite la page avec un post, et parfois ils ne le font pas?
OriginalL'auteur Sperick | 2013-07-18
Vous devez vous connecter pour publier un commentaire.
C'est le double-présenter le problème dans les navigateurs.
Lorsqu'une page est chargée à l'aide d'une requête POST et vous essayez de recharger la page à l'aide de
location.reload(true);
, le navigateur a besoin d'envoyer une autre requête POST vers le serveur et cela peut causer des problèmes comme POST est censé modifier l'état sur le serveur. Par conséquent, le navigateur a besoin de la confirmation de l'utilisateur. Pour résoudre ce problème, nous utilisons habituellement POST-REDIRIGER-GET modèle.Dans votre cas, il suffit simplement à l'aide de
location.href = location.href
devrait résoudre le problème que cela permettra de recharger la page à l'aide de GET.location.reload(true);
fonctionne sans nouvelle de l'envoi. Je l'ai juste essayé...( dans IE - elle ne demande à nouveau) +1vous pouvez également utiliser, à l'emplacement.attribuer(emplacement.href);
OriginalL'auteur Khanh TO
Cela se produit lorsque vous essayez de revenir
view(Model)
de votre POST demande. En fait vous ne pouvez pas retourner un point de vue de POST demande parce que le renvoi d'un point de vue est censé être un OBTENIR opération et elle doit être faite en vertu de l' OBTENIR demande.Ainsi, après l'affichage de vos données et enregistrer les données dans la base de données , vous devez utiliser
ReturnToAction
dans votre contrôleur et le retour définitif de votre vue à partir de cette méthode d'action.Aussi, Si vous souhaitez actualiser votre page, vous devez utiliser
location.href = location.href
au lieu dewindow.reload()
, parce quelocation.href
permettra d'obtenir les données par le biais de OBTENIR demande.OriginalL'auteur Sagar Arora
Vous pouvez créer un
setTimeout
fonction comme ceci.Ce ne sera pas vous donner tout
OriginalL'auteur pixellab
J'ai connu le même problème lors d'un appel fenêtre modale.
J'ai enlevé
location.reload
et tout juste de retourtrue
valeur de la fonction.Cela a résolu mon problème.
OriginalL'auteur bhooshan Sane