Shiro 处理ajax请求 拦截登录超时---解决!
2017-11-16 11:58
609 查看
配置全局ajax配置
将这段js,放在全局的文件中。例如自己写的js文件 或者其他。。
然后有关一些其他问题:
1.如何判断是ajax请求?
请看下面代码:
2.了解Jquery中“$.ajaxSetup()方法”
3.complete : function(){} 是什么函数?
complete: function() {} 这个是回调函数,在完成的时候,会执行这个方法。(在我们的情形中是当ajax请求完成之后调用。)
4. $.ajax({})中的 error , complete , beforeSend 回掉函数的了解
$.ajaxSetup({ complete:function(XMLHttpRequest,textStatus){ if(textStatus=="parsererror"){ $.messager.alert('提示信息', "登陆超时!请重新登陆!", 'info',function(){ window.location.href = 'login.jsp'; }); } else if(textStatus=="error"){ $.messager.alert('提示信息', "请求超时!请稍后再试!", 'info'); } } });
将这段js,放在全局的文件中。例如自己写的js文件 或者其他。。
然后有关一些其他问题:
1.如何判断是ajax请求?
请看下面代码:
String requestType = request.getHeader("X-Requested-With"); if("XMLHttpRequest".equals(requestType)){ System.out.println("非AJAX请求.."); System.out.println("AJAX请求.."); }else{ //此时requestType为null }
2.了解Jquery中“$.ajaxSetup()方法”
//设置AJAX的全局默认选项 $.ajaxSetup( { url: "/index.html" , // 默认URL aysnc: false , // 默认同步加载 type: "POST" , // 默认使用POST方式 headers: { // 默认添加请求头 "Author": "CodePlayer" , "Powered-By": "CodePlayer" } , error: function(jqXHR, textStatus, errorMsg){ // 出错时默认的处理函数 // jqXHR 是经过jQuery封装的XMLHttpRequest对象 // textStatus 可能为: null、"timeout"、"error"、"abort"或"parsererror" // errorMsg 可能为: "Not Found"、"Internal Server Error"等 // 提示形如:发送AJAX请求到"/index.html"时出错[404]:Not Found alert( '发送AJAX请求到"' + this.url + '"时出错[' + jqXHR.status + ']:' + errorMsg ); } } ); // 未设置任何参数,但url、async、type、headers、error等参数的默认值均已被$.ajaxSetup()更改(如上) $.ajax( ); // 设置了url、type、success、error,就使用自己设置的参数值 // 但async、headers等参数的默认值已被$.ajaxSetup()更改 $.ajax( { url: "myurl.php?action=list" , type: "GET" , success: function( data, textStatus, jqXHR ){ alert("返回数据:" + data); } , error: function(jqXHR, textStatus, errorMsg){ alert("自己的error!"); } }); // 上述$.ajaxSetup()的默认设置对$.get()、$.post()、load()、$.getJSON()、$.getScript()等AJAX函数也生效 // 因为这些函数也是在内部调用$.ajax()函数来实现的,只不过它们在内部都设置了一些参数 // $.get()在内部调用$.ajax()时已设置type为"GET",因此仍然使用GET方式。 // 但url、async、headers、error等参数的默认值已被$.ajaxSetup()更改 $.get( ); // $.post()在内部调用$.ajax()时已设置type为"POST",因此仍然使用POST方式。 // url也被设置为"user/action.php?method=addUser" // 但async、headers、error等参数的默认值已被$.ajaxSetup()更改 $.post( "user/action.php?method=addUser" );
3.complete : function(){} 是什么函数?
complete: function() {} 这个是回调函数,在完成的时候,会执行这个方法。(在我们的情形中是当ajax请求完成之后调用。)
4. $.ajax({})中的 error , complete , beforeSend 回掉函数的了解
/* 通过捕捉error事件来获取出错的信息: error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); } XMLHttpRequest.readyState: 状态码的意思 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 3 - (交互)正在解析响应内容 4 - (完成)响应内容解析完成,可以在客户端调用了 status:返回的HTTP状态码,比如常见的404,500等错误代码。 statusText:对应状态码的错误信息,比如404错误信息是not found,500是Internal Server Error。 responseText :服务器响应返回的文本信息 complete: function (XMLHttpRequest, textStatus) { //textStatus的值:success,notmodified,nocontent,error,timeout,abort,parsererror }, error: function (XMLHttpRequest, textStatus, errorThrown) { //textStatus的值:null, timeout, error, abort, parsererror //errorThrown的值:收到http出错文本,如 Not Found 或 Internal Server Error. } */
相关文章推荐
- Shiro 处理ajax请求 拦截登录超时 解决!
- 过滤器实现登录拦截需要注意的问题(AJAX请求的处理)
- shiro 拦截器实现session过期拦截ajax请求的处理
- Spring Security管理下的ajax请求登录超时问题处理
- session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)
- IE中ajax+jsp登录界面,由于缓存导致jsp过滤器与ajax请求被拦截的问题和解决
- Struts 通过拦截器实现登录后跳转到登录前页面 处理普通Http请求和Ajax请求时拦截配置
- ajax 请求登录超时跳转登录页解决方法
- 解决shiro登陆超时ajax请求跳转
- IE中ajax+jsp登录界面,由于缓存导致jsp过滤器与ajax请求被拦截的问题和解决
- java Servlet Filter 拦截Ajax请求,统一处理session超时的问题
- 在Ajax请求中处理登录session超时的方法
- 关于shiro中 ajax请求登录失效的处理
- session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java推断是否是ajax请求)
- springmvc3 拦截器,过滤ajax请求,判断用户登录,拦截规则设置
- Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
- Session超时或无效,处理ajax请求
- 解决拦截器对ajax请求的拦截实例详解
- Ajax请求在数据量大的时候出现超时的解决方法
- Ajax请求处理Session超时