簡體   English   中英

php或jquery會重定向我嗎? Ajax登錄

[英]Will php or jquery redirect me? Ajax login

我對php腳本進行了ajax調用,該調用將指示用戶輸入的信息是否有效,並且將授權他登錄。問題是我不確定會話變量。 該php腳本可以保存會話ID變量並將其傳遞到下一個php頁面嗎,在此頁面上,jQuery將在成功調用ajax時重定向我? 還是PHP本身會使用標頭位置重定向我? 我希望我能說清楚。 這是一個理論問題。

您將在會話中設置用戶標識,並將“成功”條件返回給ajax。 ajax成功回調將檢查返回的數據以確定登錄是否成功並采取相應措施(例如,重定向到登錄的主頁)

在這種情況下,您無法使用PHP進行重定向,因為標頭未在http響應中返回。 您可以在響應中設置一個變量,以返回您的php處理狀態。 就像是

data = array(
 "connect"=>true
);

要么

data = array(
 "connect"=>false,
 "errors"=>"There is an error in your request"
);

然后在success:函數中,您可以檢查變量是true還是false,並根據需要重定向。

success: function(response){
  if(response.connect){
//succeded
}else{
//not succeded
}

希望能有所幫助。 干杯!

我不同意@Mijail的話

在這種情況下,您無法使用PHP進行重定向,因為標頭未在http響應中返回

使用jQuery(或普通XHR),您可以驗證是否具有響應狀態(為3xx之一)的重定向,然后使用xhr對象中的getResponseHeader方法獲取'location'標頭,以查看應該重定向到'location'

success: function(data, textStatus, xhr) {
    if(xhr.status > 300 && xhr.status < 400) {
        document.location.href = xhr.getResponseHeader('location') || '/';
    }
}

當您也不想在客戶端上復制重定向規則時,這是正確的方法。

從理論上講,您可以使用任何一種方法來完成此操作,但是如果看不到您的實際代碼,很難給出明確的答案。

如果您使用jQuery調用auth PHP腳本並在該PHP腳本中設置會話,則可能會成功使用JS(Ajax)重定向到“受保護”區域(會話啟動時從PHP腳本返回) )。

暫無
暫無

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

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