天天看點

ajax連結逾時重新登入系統,ajax 請求登入逾時跳轉登入頁的示例代碼

ajax 請求登入逾時跳轉登入頁的示例代碼

釋出于 2015-05-22 21:56:07 | 820 次閱讀 | 評論: 0 | 來源: 網友投遞

AjaxAJAX即“Asynchronous Javascript + XML”(異步JavaScript和XML),是指一種建立互動式網頁應用的網頁開發技術。

在Filter裡判斷是否登入,如果未登入傳回401狀态

public class SelfOnlyAttribute : ActionFilterAttribute

{

public override void OnActionExecuting(ActionExecutingContext filterContext)

{

HttpResponseBase response = filterContext.HttpContext.Response;

HttpRequestBase request = filterContext.HttpContext.Request;

if (filterContext.HttpContext.User.Identity.IsAuthenticated)

{

//已經登入代碼

}

else

{

if (!request.IsAjaxRequest())

{

string str = request.Url.AbsoluteUri.ToLower();

string str2 = "/login";

filterContext.Result = new RedirectResult(string.Format("{0}?returnUrl={1}", str2, str));

}

else

{

response.SetStatus(401);

}

filterContext.Result = new HttpUnauthorizedResult(); //這一行保證不再執行Action的代碼

response.End(); //必須加上這句,否則傳回前台status始終是200

return;

}

}

}

在全局js添加錯誤處理代碼

$("div").ajaxError(function(e,xhr,opt){

alert(xhr.status+ " " + xhr.statusText);

if(xhr.status=401){

//TODO 未登入 跳轉到登入頁

window.location.href = ‘/login‘;

}

});

相關閱讀:

ajax 請求登入逾時跳轉登入頁的示例代碼

Ajax實時驗證使用者名/郵箱等是否已經存在的示例代碼

使用PHPRPC實作Ajax安全登入

Ajax請求在資料量大的時候出現逾時的解決方法

xml分頁+ajax請求資料源+dom取結果執行個體代碼

ajax 送出資料到背景jsp頁面及頁面跳轉問題

php+ajax實作無重新整理分頁的方法

ajax請求與傳統http請求區分

防止重複發送 Ajax 請求

詳談Ajax請求中的async:false/true的作用(ajax 在外部調用問題)

ajax的分頁查詢示例(不重新整理頁面)

解決攔截器對ajax請求的攔截執行個體詳解