2009-08-04 8 views
12

J'ai une question apparemment simple, mais ne trouve pas la réponse. J'ai une page Web, qui peut avoir résulté d'une demande POST et peut avoir une ancre (#) dans l'URL. Je veux recharger cette page comme une demande GET en JavaScript. Donc, c'est semblable à this question, mais je veux vraiment éviter le POST, pas seulement l'avertissement à ce sujet. Par exemple, si la page résultait d'une requête POST vers "http://server/do/some?thing#", je souhaite recharger l'URL "http://server/do/some?thing" en tant que GET. Si j'essayeJavaScript pour recharger la page comme GET demande

window.location.reload(true); 

qui provoque IE à essayer un POST. Si je fais à la place:

window.location = window.location.href; 

cela ne fait rien lorsque l'URL a une ancre. Ai-je vraiment besoin de faire moi-même la manipulation des cordes pour me débarrasser du "#whatever" ou y a-t-il un moyen plus facile et "meilleur" de le faire?

+3

La façon "appropriée" probablement implique de ne pas effectuer d'actualisation de page côté client. – Triptych

+0

En effet, pouvez-vous fournir un peu plus de contexte sur le problème afin que nous sachions que nous ne sommes pas sur le point de vous recommander de faire quelque chose de stupide. – Breton

+0

duplication possible de [Actualiser la page avec les variables javascript et GET] (http://stackoverflow.com/questions/17253754/refresh-the-page-with-javascript-and-get-variables) – Stephen

Répondre

11

Le meilleur que je suis venu avec à ce jour est:

function reloadAsGet() 
{ 
    var loc = window.location; 
    window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search; 
} 
5

les opérations suivantes:

location.replace(location.href) 
+0

Cela n'a pas fonctionné pour moi dans Chrome Version 47.0.2526.111 (64 bits) – Jon

0

Vous pouvez essayer

location=location.href 
+0

Bien que ce code puisse répondre à la question, fournir un contexte supplémentaire concernant la façon et/ou la raison pour laquelle il résout le problème améliorerait la valeur à long terme de la réponse. – Badacadabra

Questions connexes