У меня есть следующая проблема, у меня есть страница, которая открывается с помощью ajax и изменяет динамический URL-адрес браузера, подобного этому
window.history.pushState(null, null, "/desktop/manage/add");
поэтому, когда я нахожусь на странице "Добавить" и открываю любую страницу с запросом на получение/отправку (даже на другом веб-сайте) и нажимаю кнопку "Назад" в браузере, я получаю не полный html-код страницы, а только часть ajax, Например:
Как это можно исправить?
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') %>");