Ajax和History.js发送错误的引用者

时间:2014-10-01 01:09:55

标签: javascript jquery ajax history.js

我有一个与jQuery和History.js一起使用的Ajax站点,当点击链接时我执行这个:

var $this = $(this), // $(this) is the link
url = $this.attr('href'),
title = $this.attr('title') || null;
History.pushState(null, title, url);
event.preventDefault();

然后我查看statechange以进行ajax调用并更改页面内容:

$(window).bind('statechange', function () {
     var State = History.getState(),
     url = State.url
     $.ajax({
        url: url,
        success: function (data, textStatus, jqXHR) {
           // I change the content etc etc
        }
});

但是Referrer标头始终是被请求的URL,例如,我在我的页面“/ home”上单击一个带有href“/ test”的链接,然后代码将ajax调用发送到/ test,但在该请求中,它作为推荐人发送相同的“/ test”而不是“/ home”。

我试图在pushState之后进行ajax调用,并且它工作正常,它发送引用者很好,但后退按钮只是停止工作,它更改网址而不是内容所以,我需要再次查找statechange。

我该怎么办?

对不起我的英文和谢谢!

1 个答案:

答案 0 :(得分:0)

没关系,我的解决方案是:首先进行ajax调用,然后像我之前说的那样成功进行History.pushState,但要解决后退/前进按钮只需要听'popstate'而不是'statechange'。 'popstate'是解决方案。

问候。