删除查询参数,导致页面刷新问题

时间:2016-03-10 08:01:43

标签: javascript html5-history

我有一个附有查询字符串的URL。页面加载后,我将使用

删除查询参数

history.replaceState("","",location.href.substring(0,location.href.indexOf("?")))

但是当用户点击刷新按钮时,它会从我的应用程序中显示错误屏幕,因为预期的查询参数不在URL中。我可以在那里使用post action但我想避免查询params页面刷新工作正常。对此有什么解决方案吗?

1 个答案:

答案 0 :(得分:1)

如果您正在使用查询参数然后将其删除,那么用户点击了刷新,并且有一个错误说它需要查询参数,那么您的代码(和逻辑)缺乏。

我的建议是,如果你想在最初加载页面后避免查询参数,那么如果有代码隐藏,则将参数保存在cookie或甚至会话中。然后,如果用户刷新而没有查询参数,请检查cookie是否存在,如果cookie存在,请正常显示页面,如果没有,则告诉他们他们没有通过正确的渠道访问URL。

然而,就像我提到的那样,我认为你的逻辑是有缺陷的,因为如果用户想要将你的URL分享到外部世界,并且你删除了使页面成功加载的关键信息,那么你将拥有手上有很多困惑的人

修改

您可能想要调查SEO友好网址以将您的查询传递给,所以代替:yoururl.com/?firstname = joe你可以做yoururl.com/firstname/joe