Страницы

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

понедельник, 16 декабря 2019 г.

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

#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

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

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