$ .getJSON bouton arrière montrant les données de retour JSON pas la page

J'ai un petit problème avec mon site. J'ai une page qui héberge une carte google. Cependant, la carte n'est pas affichée jusqu'à ce que l'utilisateur clique sur un bouton. Ensuite, appelez $ .getJSON pour obtenir les adresses que je dois afficher sur la carte …

$.getJSON(theurl, function(json) { ... } 

Tout fonctionne bien. Toutefois, si l'utilisateur se déplace vers une page différente, puis clique sur le bouton Précédent, ils obtiennent les données de l'appel $ .getJSON affiché, et non la page elle-même.

C'est comme si l'appel pour obtenir les adresses est devenu une partie de l'historique de navigation. Si l'utilisateur effectue une actualisation lorsque les données apparaissent, la page complète s'affiche.

Quelqu'un peut-il me dire comment empêcher cela?

J'utilise googlemap dans un site ASP.Net MVC.

Merci

Je l'ai résolu en incluant le code ci-dessous juste avant la fonction $ .ajax

$ .ajaxSetup ({cache: false});

Ça marche! Essayez-le

Cela a fonctionné pour moi et joue bien avec les contrôleurs Rails:

 $.getJSON(url, {format: 'json'}, successHandler); 

En bonus, je conserve le cache.

Je suis assez sûr que cela fonctionne pour la même raison que le cache: false travaux cache: false – tous les deux ajoutent un paramètre à l'url afin que Chrome ne soit pas confondu avec l'origine. Dans ce cas, je parviens à mettre en cache les résultats, ce qui est sympa.

Il s'agit en fait d' un bug dans Chrome . Je l'ai réparé en ajoutant quelque chose à l'URL de l'appel AJAX, donc c'est différent de l'URL de la page (par exemple '& ajax = true').

Donc, dans votre cas, il ressemblerait à:

 $.getJSON(theurl + '&ajax=true', function(json) { ... } 

(Et bien sûr, vous devrez vérifier pour «?» Et ce qui n'est pas dans la chaîne de requêtes, mais cela illustre le point.