現狀:阿賈克斯會話超時
我的web應用程序是密碼protected.For每個HTTP請求我們對服務器,它正在覈對會話存在。如果會話已過期,則用戶將轉至登錄頁面。 這對於http請求來說沒問題。但是如果它是一個AJAX請求,那麼就像http請求一樣,如果session已經過期,它也會被轉發到登錄頁面。
問題:
如果我們直接顯示在瀏覽器的AJAX響應,然後在地方我們預期的響應將顯示在您的browser.And登錄頁面內容,如果你將獲取任何預期格式的數據,那麼它會拋出JavaScript錯誤。
我的代碼:會話超時,當我打電話通過我的代碼Ajax請求
<script>
function details() {
var xyz = document.getElementById("name").value;
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'name=' + xyz;
// AJAX code to submit form.
$.ajax({
type: "POST",
url: "user.php",
data: dataString,
cache: false,
success: function(html) {
document.getElementById("content").innerHTML=html;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status === 401) {
location.href = 'index.php';
}
}
});
return false;
}
</script>
。它會將login.php內容加載到當前頁面中,而不是將用戶轉發給登錄頁面。
指導我在哪裏做錯了什麼。
謝謝。
你嘗試過'window.location.href'嗎? – 2014-11-04 07:34:21
@northkildonan是的,我嘗試過,但沒有工作..我正在做正確的處理使用ajax會話時間? – 2014-11-04 07:36:05
您確定您正在設置401 statusscode標頭嗎? 'header('HTTP/1.1 401 Unauthorized',true,401);' – 2014-11-04 07:42:19