2

我使用 History.js,有时当我单击后退按钮时,我只从 ajax 调用而不是整个页面(包括 ajax 调用)中获取内容。这会导致站点看起来很糟糕,因为没有加载脚本、css 或 html“容器”。

  1. 我浏览我的页面。
  2. 我在地址栏中键入另一个站点。
  3. 我点击后退按钮——现在只显示上一个 ajax 调用的 html,没有 css、js 或其他 html

为什么会发生这种情况,我该如何解决?

我的代码如下所示:

History.Adapter.bind(window, 'statechange', function(){
    var State = History.getState();
    $.ajax({
        url: State.url,
        type: 'get',
        beforeSend: function(xhr){ 
            xhr.setRequestHeader('X-PJAX', true); 
        },
        success: function(resp, status, xhr) { 
            $('#wrapper').html(resp); 
        }
    });
});
4

1 回答 1

2

我通过在我的 ajax 响应上禁用缓存来修复它。

Cache-Control: no-cache, no-store, must-revalidate

现在,当我单击后退按钮时,整个页面都会被加载,而不仅仅是 ajax 响应。

于 2013-11-06T13:32:16.263 回答