簡體   English   中英

驗證后Perl CGI重定向

[英]Perl CGI redirect after authentication

我知道這是一個基本問題,已經被問了好幾次了,但我聽不懂。

我正在使用帶有一些輸入字段和提交按鈕的html網頁,當按下提交按鈕時,該帖子通過XMLHttpRequest完成,並調用了CGI腳本。 在cgi腳本中,將使用服務器文件中的值檢查身份驗證。

問題是,如果身份驗證為假,我想將瀏覽器重定向到xmltest.shtml,因為我已經在CGI中編寫了此代碼:

 if($isauthenticated == 0)
   {
     print "Location: http://xmltest.shtml\n\n";
     }

但是,當返回此cgi時,將使用xmltest.shtml頁面調用get,但不會重定向瀏覽器。

這意味着,如果我在Firebug控制台中簽入,我會看到xmltest.shtml的get請求,但是瀏覽器頁面未重定向到xmltest.shtml,它仍保留在同一頁面上。

您不能使頁面以這種方式重定向。 使用XMLHttpRequest時,會將重定向標頭發送到XMLHttpRequest客戶端 ,該客戶端在后台運行。 您將成功重定向該客戶端,但不會影響屏幕上的頁面。

如果要重定向實際的瀏​​覽器頁面以響應XMLHttpRequest會話,則需要編寫一些JavaScript來捕獲錯誤情況,並通過更新document.location.href的值來重定向瀏覽器。

如果您使用的是jQuery之類的AJAX框架,則ajax方法中存在一個錯誤回調 ,如果失敗的請求返回HTTP 403或類似的請求,該回調將被執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM