gpt4 book ai didi

jquery - rails ajax URL更改

转载 作者:技术小花猫 更新时间:2023-10-29 12:43:18 24 4
gpt4 key购买 nike

我有下一个问题,我有一个用 ajax 打开的页面,并像这样动态更改浏览器的 URL

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

所以当我在“添加”页面并打开任何带有获取/发布请求的页面(甚至是另一个网站)并在浏览器中按下“返回”按钮时,我得到的不是页面的完整 html 代码,而是只有 ajax 部分.像这样:pic

如何解决这个问题?

P.S 如果我删除 window.history.pushState(null, null, "/desktop/manage/add");一切正常,但我需要更改浏览器的 URL。

更新:我通过 post 请求打开这个页面,没有 ajax enter image description here

然后我通过 AJAX 打开“管理/添加”页面 enter image description here

然后转到 google.com(任何站点)并单击后退按钮 enter image description here

我的 ajax 加载页面不是完整的 HTML 页面,只有像文本这样的 ajax 部分: enter image description here

我读到了这个问题,通常 Rails 程序员会像这样将事件添加到 application.js 的后退点击按钮:

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

但这只适用于用户不去谷歌(或任何其他网站),只有当他们浏览我的网站并点击后退按钮时它才有效。

UPD2:/添加 Controller

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') %>");

最佳答案

我前段时间遇到了同样的问题,但是用 replaceState() 代替。起初我没有注意到这一点,但我的开发人员同事提醒我注意它。原来我没有注意到它,因为我使用的是 Firefox,这似乎是他使用的 Chrome/Chromium 独有的错误。事实上,这似乎是 a while now 的错误。 ,但 Google 尚未修复它。

话虽这么说,但似乎对此没有真正的解决办法,至少在 Google 修复它之前是这样。当然,简单地重新加载页面会使问题暂时消失,但您仍然会看到丑陋的代码。您也可以不使用 Chrome/Chromium,但这也不是解决方案。

关于jquery - rails ajax URL更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31535977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com