Browser 是否可以停止浏览器在其历史记录中存储URL?

Browser 是否可以停止浏览器在其历史记录中存储URL?,browser,Browser,当用户使用上一页上的链接单击某个页面时,目标页面是否可以自动从浏览器历史记录中删除其自己的URL(不需要对实际包含该链接的页面进行重大修改,除非该页面可能是简单的HTML属性或其他内容) 显然,我不应该在URL中存储敏感信息,但在某些情况下,我必须在URL中存储一些信息,虽然这些信息不敏感,但最好不要存储在历史中。(如果这些URL显示在历史记录中,则它们对用户完全没有用处。) 那么,作为一名webapp开发人员,有没有办法至少在一些现代浏览器中让这些内容远离历史?(由于URL而加载的页面上的某些

当用户使用上一页上的链接单击某个页面时,目标页面是否可以自动从浏览器历史记录中删除其自己的URL(不需要对实际包含该链接的页面进行重大修改,除非该页面可能是简单的HTML属性或其他内容)

显然,我不应该在URL中存储敏感信息,但在某些情况下,我必须在URL中存储一些信息,虽然这些信息不敏感,但最好不要存储在历史中。(如果这些URL显示在历史记录中,则它们对用户完全没有用处。)

那么,作为一名webapp开发人员,有没有办法至少在一些现代浏览器中让这些内容远离历史?(由于URL而加载的页面上的某些内容,如HTTP标题、JavaScript或HTML等。)


(我对使用AJAX、iframes等技术获取页面不感兴趣,因为用户实际上没有导航到所述URL,但仍然能够从中获取内容。)

使用javascript,您可以使用
窗口的
替换
方法。位置

window.location.replace(字符串url)

查看更多详细信息

这似乎是不可能的

浏览器历史记录将存储URL。最好的办法是防止URL进入后退/前进按钮,或者使用“使用AJAX、iframes等技术获取页面,用户实际上没有导航到所述URL,但仍然能够从中获取内容”。

在某些情况下,发送
302 Found
响应并重定向到另一个页面可能有效。如果需要隐藏查询字符串参数,可以在初始重定向响应上使用它们设置会话cookie,然后使用它们在实际页面上提供响应。请记住,当你提供页面时,要清除cookie


但这完全是一种服务器端方式,虽然您可以隐藏敏感数据,但您仍会在历史记录中看到域上的某些页面。

在Chrome&Firefox中,这仍然会将其添加到浏览器历史记录中,但不会将其添加到会话历史记录中。这种方法将阻止“后退按钮”在我测试的浏览器中工作。你能举个例子吗?@TrevorSenior很有趣,没想到它会附加到浏览器历史中…+1这是一个有趣的问题。我无法从浏览器历史记录中删除当前页面的URL。您可以随时使用或类似的方法修改URL,以便不显示URL中的信息,但这必须在页面加载后完成,并且包含信息的URL仍将存在于浏览器历史记录中。如果需要,使用pushState支持模拟“漂亮URL”的旧iframe怎么样?@ray,它没有像我希望的那样很好地满足要求。也许什么都不会。@GeorgeBailey是的,顺便说一句,我认为在我们能找到的任何解决方案中,“nice”作为形容词都是不合适的:)我一直在等待,以防止URL进入后退/前进按钮。你能给我指出正确的方向吗?这可能是服务器端带有
301
302
重定向,或者使用客户端JavaScript
位置。替换
。有关更高级的功能,请查看
history.replaceState