替代"Referer"标题

Ebb*_*ham 8 java jsp http http-headers

我使用了代码"request.getHeader("Referer");" 代码似乎工作正常.但最近我发现它在IE中不起作用.IE投掷无效.我现在对如何前进毫无头绪.有没有"Referer"标题的替代品可以获得以前的链接并在所有浏览器中正常工作?从上一个链接设置自定义标题对我来说不是一个可行的选择.所以有人请帮我解决这个问题.谢谢.

Aar*_*lla 10

"Referer"标头条目是可选的.你不能依赖它存在.没有跨浏览器方式来获取上一个链接,因为这取决于用户设置和代理配置(即系统管理员认为应该允许您查看的内容).

你必须找到一种没有这些信息的生活方式.

  • 我不认为这是IE特定的.大多数浏览器都允许您停用refer(r)er标头,如果您手动将URL添加到位置栏,则也不会有引用.您不能依赖引用者信息. (4认同)

Bal*_*usC 7

目前还不清楚你需要它,但我怀疑你需要它能够在一些动作完成时回到同一网站的某个"初始页面".然后,您最好的选择是将请求URI作为请求参数传递.例如登录链接:

<a href="/login?from=${pageContext.request.requestURI}">login</a>
Run Code Online (Sandbox Code Playgroud)

在登录表单中,将其保留为下一个请求作为表单的隐藏输入值:

<input type="hidden" name="from" value="${param.from}">
Run Code Online (Sandbox Code Playgroud)

在登录操作方法中,只需在完成操作后重定向到该URL.

response.sendRedirect(request.getParameter("from"));
Run Code Online (Sandbox Code Playgroud)

如果这不是您正在寻找的,那么您应该更详细地阐述您的问题,以询问如何实现功能需求,而不是询问如何实现(错误)解决方案.

从一开始就依赖于引用者的任何业务逻辑流程都是一个坏主意.您的第一个web开发人员课程应该是:最终用户可以完全控制他/她使用HTTP请求发送的内容.您不应该依赖所有存在的信息,更不用说100%正确.