0

我有 ruby​​ on rails 应用程序,我使用了很多 ajax 来使网页动态化并只更改它的特定部分。

在某些情况下,当使用 ajax 更改页面内容时,URL 不会更改,我发现这是不正确且不正确的行为。

例如:

我在功能上忘记了密码,其中向用户发送了一封带有编辑链接的电子邮件。该链接如下所示:

http://127.0.0.1:8080/password_resets/-k63MeQcBkCZt3fovkfsTA/edit

当用户打开它并更改他的密码时,我正在使用 ajax 提交表单。因此,显示密码已更改且用户现在可以登录的消息,但 URL 保持不变。

在 Rails 中解决这个问题的正常方法是什么?

4

2 回答 2

2

你想在你的一个 .js 文件中使用这样的东西

window.history.pushState('object', 'New Title', url);

不过,您可能想查看 TurboLinks……它会自动执行您正在寻找的工作。

于 2013-06-25T16:33:33.060 回答
0

这是正常行为,ajax 调用不会更改 url。如果你这样做,它不再是 ajax,它只是改变页面。但是你可以:

document.location="http://127.0.0.1:8080/password_resets/-k63MeQcBkCZt3fovkfsTA/psswd-Ok";

如果你愿意,你可以在 url 中添加一个哈希,它仍然是 ajax:

document.location.hash="psswd-Ok";
于 2013-06-25T16:36:08.607 回答