var counter = 1;
$('button').click(function(){
$.ajax({
url: 'index.json',
method: 'GET',
success: function(res){
$('body').append(JSON.stringify(res))
if (!!(window.history && history.pushState)) {
history.replaceState(null, null, '?page=' + counter);
}
counter++;
}
});
});
На сайте вылез косяк, связанный с тем что по нажатию на кнопку происходит подгрузка данных через ajax и обновляется история браузера через history api через метод replaceState, который перезаписывает истории.
Проблема в том что если я нажимаю кнопку назад - то показывается не предыдущая страница , а результат ajax запроса. То есть в историю как будто записывается результат ajax, хотя url при этом корректный
Это в chrome, в FF отлично работает и я вижу всю страницу.
Попробовал воспроизвести на отдельно html-страничке - все гуд во всех браузерах - кто нибудь сталкивался с таким?
Если меняешь GET запрос на POST, то все гуд
Как будто история запоминает этот запрос GET запрос (воспроизводиться только в chrome)
Ответ
Дело было в ajax. Он кеширует get запросы. Помог cache: false
Комментариев нет:
Отправить комментарий