Страницы

Поиск по вопросам

суббота, 27 октября 2018 г.

History Api запоминает только результат ajax-запроса

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

Комментариев нет:

Отправить комментарий