Ajax 请求session过期的统一处理
2015-04-29 14:05
253 查看
web项目中,如果一个页面长时间没有操作,而session已经过期了,这时如果执行一些操作,比如查询 编辑 等ajax请求,如果使用的是jquery $.post()方法,即使后台判断session过期,进行转发,前台也不会有响应,而对用户造成一定的困惑。
使用jquery提供的一些全局的ajax事件可以解决这一问题:
ajaxComplete()函数用于设置当AJAX请求完成(无论成功或失败)时执行的回调函数。
这是一个全局AJAX事件函数,用于为所有AJAX请求的ajaxComplete事件绑定事件处理函数。当AJAX请求完成(无论成功或失败)时,将触发ajaxComplete事件,并执行绑定的事件处理函数。
该函数必须在jQuery对象实例上调用,ajaxComplete()将为每个匹配元素的ajaxComplete事件绑定处理函数。当AJAX请求完成后,所有匹配元素上的处理函数都将被触发执行。事件处理函数内的this将指向当前DOM元素。
你可以在同一元素多次调用该函数,从而绑定多个事件处理函数。触发ajaxComplete事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。
注:从jQuery 1.8开始,该函数只能为document对象的ajaxComplete事件绑定处理函数,为其他元素绑定的事件处理函数不会起作用。
如果在jQuery.ajax()或jQuery.ajaxSetup()中将选项参数global设为false,可以禁止该AJAX请求触发全局的AJAX事件。
例:
ajaxSetup
参考:
/article/5899306.html
使用jquery提供的一些全局的ajax事件可以解决这一问题:
ajaxComplete()函数用于设置当AJAX请求完成(无论成功或失败)时执行的回调函数。
这是一个全局AJAX事件函数,用于为所有AJAX请求的ajaxComplete事件绑定事件处理函数。当AJAX请求完成(无论成功或失败)时,将触发ajaxComplete事件,并执行绑定的事件处理函数。
该函数必须在jQuery对象实例上调用,ajaxComplete()将为每个匹配元素的ajaxComplete事件绑定处理函数。当AJAX请求完成后,所有匹配元素上的处理函数都将被触发执行。事件处理函数内的this将指向当前DOM元素。
你可以在同一元素多次调用该函数,从而绑定多个事件处理函数。触发ajaxComplete事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。
注:从jQuery 1.8开始,该函数只能为document对象的ajaxComplete事件绑定处理函数,为其他元素绑定的事件处理函数不会起作用。
如果在jQuery.ajax()或jQuery.ajaxSetup()中将选项参数global设为false,可以禁止该AJAX请求触发全局的AJAX事件。
例:
$(document).ajaxComplete(function(event,request, settings){ //do something you want... // e.g. if timeout then goto you login page.... top.location.href="login.jsp" });
ajaxSetup
/** * ajaxSetup 可以设置未来(全局)的AJAX请求默认选项 * 主要设置了AJAX请求遇到Session过期的情况 */ $.ajaxSetup({ type: 'POST', complete: function(xhr,status) { var sessionStatus = xhr.getResponseHeader('sessionstatus'); if(sessionStatus == 'timeout') { var top = getTopWinow(); var yes = confirm('由于您长时间没有操作, session已过期, 请重新登录.'); if (yes) { top.location.href = '/skynk/index.html'; } } } }); /** * 在页面中任何嵌套层次的窗口中获取顶层窗口 * @return 当前页面的顶层窗口对象 */ function getTopWinow(){ var p = window; while(p != p.parent){ p = p.parent; } return p; }
参考:
/article/5899306.html
相关文章推荐
- ajax前置处理实现异步请求session过期时跳转登录页面
- session过期,处理ajax请求,使其重新登录
- java Servlet Filter 拦截Ajax请求,统一处理session超时的问题
- shiro 拦截器实现session过期拦截ajax请求的处理
- Ajax请求session过期处理
- flask session session已过期,再发送ajax请求如何处理?
- 处理jquery的ajax请求session过期跳转到登录页面
- Ajax请求时session失效,统一处理跳转到登陆页
- ajax请求时session已过期处理方案
- ajax请求 session过期跳转首页的两种处理方式
- session过期,ajax请求处理
- js--Ajax的小知识(二):处理ajax的session过期的请求
- session失效时间设置、过期处理、ajax同步异步请求处理
- ajax请求 session过期跳转首页的两种处理方式
- 当 jquery 发送 ajax 请求的时候遇到服务端session过期超时返回 302 跳转登陆页面的时候怎么办的处理方法
- mvc下ajax请求遇到session超时简单处理方式
- Ajax请求session过期后自动跳转到登陆页
- shiro session过期后ajax请求跳转(转)
- Ajax请求Session超时的处理
- session过期,使用Ajax每隔一段时间向服务器发送一次请求,来防止session过期