$ .getJSON后退按钮显示JSON返回数据而不是页面

我的网站有点问题。 我有一个托管谷歌地图的页面。 但是,在用户单击按钮之前,地图不会显示。 然后调用$ .getJSON来获取我需要在地图上显示的地址……

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

一切正常。 但是,如果用户移动到另一个页面,然后单击“返回”按钮,则会显示$ .getJSON调用中的数据,而不是页面本身。

这就好像获取地址的调用已成为浏览历史记录的一部分。 如果用户在数据出现时点击刷新,则显示整页。

任何人都可以告诉我如何阻止这种情况发生。

我在ASP.Net MVC网站上使用googlemap。

谢谢

我通过在$ .ajax函数之前包含以下代码来解决它

$ .ajaxSetup({cache:false});

有用! 试试吧

这对我有用,并与Rails控制器很好地配合:

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

作为奖励,我得保留缓存。

我很确定这可行的原因与cache: false相同 – 都会在url中添加一个参数,以便Chrome不会被原点混淆。 在这种情况下,虽然我得缓存结果,这很好。

这实际上是Chrome中的一个错误 。 我通过在AJAX调用的URL中附加内容来修复它,因此它与页面URL不同(例如’&ajax = true’)。

所以在你的情况下,它看起来像:

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

(当然,你需要检查’?’以及查询字符串中的内容,但这说明了这一点。