public class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (Session["userInfo"] == null)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.Result = new HttpStatusCodeResult();
filterContext.HttpContext.Response.Write("/Desktop/Login/Index");
return;
}
else
{
filterContext.Result = new RedirectResult("/Desktop/Login/Index");
return;
}
}
base.OnActionExecuting(filterContext);
}
}
}
(function ($) {
//有可能导致jquery里面的done方法未定义;所以有时候可以全部注释掉;
var _ajax = $.ajax;
$.ajax = function (opt) {
var fn = {
error: function (XMLHttpRequest, textStatus, errorThrown) { },
}
if (opt.error)
fn.error = opt.error;
var _opt = $.extend(opt, {
error: function (XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == "499")
window.location.href = "/Desktop/Login/Index";
else
fn.error(XMLHttpRequest, textStatus, errorThrown);
}
});
_ajax(_opt);
};
})(jQuery); $.ajaxSetup({
statusCode: {
499: function (data) {
window.location.href = data.responseText;
}
}
});
$.ajax({
type: "POST",
url: "/desktop/language/index",
data: { language: getCookie("languageCode") },
datatype: "json",
success: function (returndata) {
//alert("second success");
}
}); //如果是Ajax.BeginForm,跳转到登陆页方式为如下:

@using (Ajax.BeginForm("GetSystemStatusTracking", "ReportQuery",
  new AjaxOptions() { UpdateTargetId = "TRACKING_NEWLIST",
    OnBegin = "showModal",
    OnComplete = "hideModal",
    OnFailure = "failureProcess"
  }))
{

}

function failureProcess(data) {
if (data.status == 499)
window.location.href = (data.responseText == '') ? window.location.href = "/Desktop/Login/Index" : data.responseText;
}

 

特别注意:当用IIS发布时,客户端访问会报错“ 自定义错误模块不能识别此错误”,但调试时和本机发布本机访问都不会报错;

初步怀疑是服务器和客户端字体解析问题导致。代码需改为如下:

$.ajaxSetup({
  statusCode: {
    499: function (data) {
      window.location.href = "/Desktop/Login/Index";
    }
  }
});


function failureProcess(data) {
  if (data.status == 499) {
    window.location.href = "/Desktop/Login/Index";
  }
}

 

 

最新文章

  1. B/S工作原理
  2. logstash VS splunk
  3. Microsoft Community
  4. java ee 中文乱码的问题
  5. 转NodeJS的npm模块版本号 模式解析
  6. UITableView详解(转)
  7. iOS之多线程浅谈
  8. Hibernate criteria 混合sql语句多表关联时查询注意事项
  9. webapi Task
  10. trie从入门到入殓
  11. mysql 跨服务器复制数据库
  12. MySQL 栏位修改为区分大小写
  13. string的基本用法
  14. HTTP 04 web 服务器
  15. Oracle只读用户角色的建立
  16. 匿名内部类访问方法成员变量需要加final的原因及证明(转)
  17. .gitignore 失效问题解决
  18. Fb,tw等emoji相关
  19. 121. Best Time to Buy and Sell Stock买卖股票12
  20. centos6 安装 directAdmin

热门文章

  1. ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)
  2. A Taxonomy for Performance
  3. hdu5396 Expression 区间dp +排列组合
  4. 小胖说事31------iOS 真机编译错误"“XXX”的 iPod" and run "XXX" again, or if "XXX" is still running
  5. 数据库操作语句大全(sql)
  6. GammaRay观察Qt程序的运行状况
  7. bootstrap table load数据
  8. Protected vs protected internal (Again) in c#
  9. P2120 [ZJOI2007]仓库建设 斜率优化dp
  10. JZOJ 1667 ( bzoj 1801 ) [ AHOI 2009 ] 中国象棋 —— DP