Подтвердить что ты не робот

Изменение URL-адресов ajax

У меня есть следующая проблема, у меня есть страница, которая открывается с помощью ajax и изменяет динамический URL-адрес браузера, подобного этому

window.history.pushState(null, null, "/desktop/manage/add");

поэтому, когда я нахожусь на странице "Добавить" и открываю любую страницу с запросом на получение/отправку (даже на другом веб-сайте) и нажимаю кнопку "Назад" в браузере, я получаю не полный html-код страницы, а только часть ajax, Например: pic

Как это можно исправить?

P.S Если я удалю window.history.pushState(null, null, "/desktop/manage/add" ); все работает нормально, но мне нужно изменить URL-адрес браузера.

UPD: Я открываю эту страницу по почте, NO ajax введите описание изображения здесь

Затем я открываю страницу "Управление/добавление" через AJAX введите описание изображения здесь

Затем перейдите на google.com(любой сайт) и нажмите кнопку "Назад" введите описание изображения здесь

И моя загруженная страница ajax не является полной HTML-страницей, есть только часть ajax только как текст: введите описание изображения здесь

Я читал об этой проблеме, и обычно программисты rails добавляют событие назад к кнопке button.js следующим образом:

$(window).on('popstate', function () {
    $.get(document.location.href)
  });

Но это работает только для того, чтобы пользователь не пошел на google (или на любой другой сайт), он работает только в том случае, если они просматривают мой сайт и нажимают кнопку "Назад".

UPD2: /добавить контроллер

def addProduct

@categories = Market.where("depth = ? and title != ''", 0).reorder(:title);
        @tags = UserTag.where(user_id: current_user.id).includes(:tags);
        respond_to do |format|
            format.html{render layout: "desktop_layout"}
            format.js {}
        end
    end

вот мой addProduct.js: (этот визуализированный файл, который вы видите на скриншоте после нажатия кнопки "Назад" )

window.history.pushState('page212', 'Mikee.kz', '/desktop/manage/add');
    $("#rightBlock").html("<%= escape_javascript(ajax_section id:'page', :render => 'myadd') %>");
4b9b3361

Ответ 1

У меня была эта же проблема некоторое время назад, однако с replaceState(). Сначала я этого не заметил, но мой коллега-разработчик назвал это моим вниманием. Оказалось, что я этого не заметил, потому что использовал Firefox, и это кажется ошибкой, исключительной для Chrome/Chromium, которую он использовал. На самом деле, похоже, это была ошибка для сейчас, но Google еще не исправил ее.

При этом кажется, что нет реального исправления для этого, по крайней мере, до тех пор, пока Google не исправит его. Конечно, просто перезагрузка страницы заставит проблему уйти на данный момент, но вы все равно увидите уродливый код. И вы просто не можете использовать Chrome/Chromium, но это тоже не решение.