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請求的攔截執行個體詳解