2016-03-10 44 views
1

我有一个连接了查询字符串的URL。页面加载后,我取出使用删除页面刷新时导致问题的查询参数

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

的查询参数但是,当用户点击刷新按钮,它从我的应用程序显示错误屏幕,因为预期的查询参数的URL是不存在。我可以使用后操作,但我想避免查询参数与页面刷新工作正常。有没有解决方案?

+1

考虑为每个会话和url缓存最后一个查询,并且在请求页面时不执行查询par AMS。这是不是一个好的做法,因为休息休息原则(无国籍),并使这样的链接不可共享,但将解决您的问题。 –

回答

1

如果您使用的是查询参数,然后将其删除,那么用户点击刷新,并且出现错误,表示期望查询参数,则代码(和逻辑)缺乏。

我的建议,如果你想避免页面最初加载后的查询参数,是保存参数在一个cookie甚至会话,如果有代码隐藏。然后,如果用户没有查询参数刷新,请检查cookie是否存在,如果cookie存在,则正常显示页面,如果没有,请指示他们没有通过正确的渠道访问URL。但是,就像我刚才提到的,我认为你的逻辑存在缺陷,因为如果用户想要将你的URL分享给外部世界,并且你删除了使页面加载成功的关键信息,那么你将会有很多困惑的人在你的手中

编辑

您可能需要调查搜索引擎友好的URL来传递您的查询中,所以不是:yoururl.com/?firstname=joe你可以做yoururl。 com/firstname/joe