我不确定我需要在这里提供多少信息..所以在我尝试解释这个场景时请多多包涵。抱歉,如果有太多“填充”
我有一个应用程序,我在其中使用 CGI::Session 来保证安全性。各种页面是通过 jquery、perl、ajax 调用等的组合引入的。当我打印一个受密码保护的页面时,我会检查 CGI::Session 记录的登录状态,并在必要时重定向到主页以下perl:
print $cgi->redirect( -URL => $homepage);
这可以按预期完美运行。
然而 ...
在其中一个受密码保护的页面中有一个 DIV,其中包含一个控制面板......它本身是通过 jquery 和 ajax 调用拉入的。我最近决定在用户单击“确定”时为保存此数据添加一些额外的安全性......这会调用另一个对 perl (ControlPanelSave.pl) 的 ajax 调用。在 perl 中,我决定为 CGI::Session 登录标志添加相同的检查(用户可能在控制面板上坐得太久,当他们点击保存时,他们已经超时 - 或者可能是坏人找到了javascript)。因此,如果未登录,perl 会检查并重定向到主页。
我遇到的问题是主页随后打印在控制面板 DIV 中,就像它是一个框架一样。
我尝试使用我能想到的唯一方法来修复它:
print $cgi->redirect( -URL => $homepage, -target => '_top' );
这没有任何区别 - 它仍然在控制面板 DIV 内打印主页。
重定向它的正确方法是什么?