Ajax и History.js отправляет неправильный реферер
У меня есть Ajax-сайт, который работает с jQuery и History.js, при нажатии на ссылку я выполняю это:
var $this = $(this), // $(this) is the link
url = $this.attr('href'),
title = $this.attr('title') || null;
History.pushState(null, title, url);
event.preventDefault();
Затем я смотрю изменение состояния для вызова 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-адрес, поэтому, например, я нажимаю ссылку href "/test" на моей странице "/home", после чего код отправляет вызов ajax в /test, но в этом запросите его отправку в качестве реферера того же "/ test" и без "/home".
Я пытаюсь сделать AJAX-вызов после pushState, и он работает нормально, он отправляет реферер нормально, но кнопка назад просто перестает работать, это меняет URL, но не содержимое, поэтому мне нужно снова искать изменение состояния.
Что я могу сделать?
Извините за мой английский и спасибо!
1 ответ
Не берите в голову, мое решение было следующим: сначала выполните ajax-вызов, затем History.pushState, как я уже говорил, в случае успеха, но для решения проблемы кнопки "назад / вперед" просто нужно прослушать "popstate", а не "statechange". "popstate" было решением.
С уважением.