0

我不确定我需要在这里提供多少信息..所以在我尝试解释这个场景时请多多包涵。抱歉,如果有太多“填充”

我有一个应用程序,我在其中使用 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 内打印主页。

重定向它的正确方法是什么?

4

1 回答 1

0

您必须编辑 JavaScript 以识别它没有获得它所期望的数据并location在客户端上设置。

于 2013-04-20T09:10:32.450 回答