2013-04-20 38 views
0

我不知道我需要給這裏多少信息..所以請耐心等待,而我試圖解釋這種情況。道歉,如果有太多的「填充」cgi.pm重定向不打印到目標_top

我有一個應用程序,其中我使用CGI :: Session安全。各種頁面都通過jQuery,Perl,ajax調用等方式組合在一起。當我打印一個受密碼保護的頁面時,我檢查CGI :: Session記錄的登錄狀態,並在必要時重定向到主頁以下perl:

print $cgi->redirect(-URL => $homepage); 

這可以正常工作。

但是......

有其中包含一個控制面板的密碼保護的網頁...這是本身通過jQuery和Ajax調用拉在一個DIV。我最近決定在用戶​​點擊「OK」時爲這個數據的保存添加一些額外的安全措施......它調用另一個對perl(ControlPanelSave.pl)的ajax調用。在perl中,我決定爲CGI :: Session登錄標誌添加相同的檢查(用戶可能在控制面板上坐的時間過長,當他們點擊保存時,他們已經超時 - 或者可能是一個壞人發現了JavaScript)。因此,如果沒有登錄,perl會檢查並重定向到主頁。

我遇到的問題是,然後將主頁打印在控制面板DIV內,就像它是一個框架。

我試圖用我能想到的唯一的方法來解決這個問題:

print $cgi->redirect(-URL => $homepage, -target => '_top'); 

不使任何區別 - 它仍然打印控制面板DIV內的主頁。

什麼是重定向它的正確方法?

回答

0

您將不得不編輯JavaScript以識別它沒有得到它期望的數據並在客戶端上設置location

+0

你的意思是不要在perl中做重定向 - 而是向JS返回一個標誌,並在那裏做重定向? ...好吧,聽起來不錯...所以沒有辦法做我想從Perl中得到什麼? – Upland 2013-04-20 09:28:39

+0

由於響應完全由JavaScript處理,因此無誤。 – Quentin 2013-04-20 10:00:42