后台设置的验证用的session,有一个参数会在30分钟后过期的那种,但是总会在过期后 报401错误后然后会弹出一个网络链接失败的alert框,怎么让它不弹出这个错误框,而是直接重定向验证页面呢?
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
一般情况下是对你的请求加error方法,最好的是全局注入容错方法,下面以JQ举个例子。
$(document).ready(function() { (function($) { //备份jquery的ajax方法 var _ajax = $.ajax; //重写jquery的ajax方法 $.ajax = function(opt) { //备份opt中error和success方法 var fn = { error: function(XMLHttpRequest, textStatus, errorThrown) {}, success: function(data, textStatus) {}, beforeSend: function(XHR) {}, complete: function(XHR, TS) {} }; if (opt.error) fn.error = opt.error; if (opt.success) fn.success = opt.success; if (opt.beforeSend) fn.beforeSend = opt.beforeSend; if (opt.complete) fn.complete = opt.complete; //扩展增强处理 var _opt = $.extend(opt, { error: function(XMLHttpRequest, textStatus, errorThrown) { //错误方法增强处理 fn.error(XMLHttpRequest, textStatus, errorThrown); // 敲黑板,这里是重点 location.href = 'http://xxxxxx/login.html'; }, success: function(data, textStatus) { //成功回调方法增强处理 fn.success(data, textStatus); }, beforeSend: function(XHR) { //提交前回调方法 fn.beforeSend(XHR); }, complete: function(XHR, TS) { //请求完成后回调函数 (请求成功或失败之后均调用)。 fn.complete(XHR, TS); } }); _ajax(_opt); }; })(jQuery); });
添加回答
举报
0/150
提交
取消