我已经构建了一个cakephp应用程序,当他尝试下载文件时,需要用户登录或注册(对于新用户)。我使用javascript将用户重定向到登录页面,一旦他们登录,我希望用户回到他们所在的下载页面。
我正在使用
$this->redirect($this->referer());
在chrome和FF中工作正常。在IE中它不起作用。它将用户重定向回主页。 document.referrer是空白的。
据我所知,在IE中,只有当用户点击链接时才会填充document.referrer。
是否有解决方法或黑客来修复此问题(javascript或php)。我感谢任何帮助。
感谢。
答案 0 :(得分:1)
Referer是一个完全可选的HTTP标头元素。许多代理和防火墙消除了它。不建议在其上构建任何逻辑。 如果需要重定向到某个上一页,则需要明确保存该信息,例如作为会话变量。
答案 1 :(得分:0)
我不知道这是否适用于您,但在使用确认对话框时,大多数IE版本也有long-standing issue。正如sibidiba所说,referer是不可靠的 - 我将下载页面URL作为查询字符串参数传递给你的javascript重定向登录。