如何在使用ajax时更改更改URL字符串?

时间:2013-06-25 16:26:47

标签: ajax ruby-on-rails-3 url

我在rails应用程序上有ruby并且我使用了大量的ajax来使网页动态化并且只改变它的特定部分。

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

例如:

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

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

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

在Rails中修复此问题的常用方法是什么?

2 个答案:

答案 0 :(得分:2)

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

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

你可能想看一下TurboLinks ......看看你自动寻找的东西。

答案 1 :(得分:0)

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

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

如果你想要你可以在网址中添加一个哈希值,它仍然是ajax:

document.location.hash="psswd-Ok";