#ajax #history_api #history
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)
Ответы
Ответ 1
Дело было в ajax. Он кеширует get запросы. Помог cache: false
Комментариев нет:
Отправить комментарий