session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)

在登录过滤器中,判断请求是ajax请求还是超链接或者地址栏变化的请求

if (httpServletReq.getHeader("x-requested-with") != null

&& httpServletReq.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest"))

{

JSONObject jsessiontimeout = new JSONObject();

jsessiontimeout.put("sessiontimeout", true);

response.getWriter().print(jsessiontimeout.toString());

response.getWriter().flush();

response.getWriter().close();

}

else {

goLogin(httpServletReq, httpServletRes);

}

js

/*******************************************************************************

* 判断session是否超时,所有动态请求都需要进行判断

******************************************************************************/

function cheackSessionTimeOut(data){

if(isJson(data))

{

if(data.sessiontimeout==true){

//重装浏览器地址栏的地址,跳到登陆页面

window.location.reload();

}

}

};

在所有ajax请求数据成功之后都调用 cheackSessionTimeOut(data);

$.post(

url,

{},

function(data)

{

cheackSessionTimeOut(data);

}

);

session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)

时间: 2024-08-03 19:04:00

session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)的相关文章

使用session处理用户搜索后数据的上一页和下一页跳转

搜索语句界面: /*单一检索:此处为一个下拉列表的检索*/ if(isset($_POST['submit']) && $_POST['submit'] == '点击搜索') { if(isset($_POST['content'])) { $content = $_POST['content']; if (isset($_POST['basic'])) { $basic = $_POST['basic']; $sql = "SELECT * FROM page WHERE $b

原生与jQuery封装的ajax请求数据及状态码

原生Ajax 请求数据 btn.addEventListener('click',function(){ if(window.XMLHttpRequest){ var xhr = new window.XMLHttpRequest(); }else{ //兼容IE浏览器 var xhr = new ActiveXObject('Microsoft.XMLHTTP'); } //请求方式get/post //请求URL //ture 异步请求:false 同步请求 xhr.open('get','

jsonp跨域请求数据实例之手机号码查询

网上有很多开放的api,我们在本地通过ajax获取数据时,总会碰到一个问题,那就是跨域!如果不借助php,java等,仅仅通过js怎么解决跨域的问题呢?或许jsonp是个不错的选择. 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="js/jquery.min.js"></script> <tit

Extjs中ajax请求当session失效时自动跳转

当session失效时,我们可以通过filter来拦截并重定向到登陆页面,可是请求如果是ajax请求,页面并不会重定向,这是因为ajax返回的是数据,无法返回页面. ajax异步请求不同于其他请求,其在请求头里包含有X-Requested-With:XMLHttpRequest,看下面两张图的区别. 我们可以在filter中通过它来判断一个请求是不是异步的,如果是,我们可以返回一个sessionstatus,在页面上通过判断sessionstatus的值来判断session是否失效. 第一张是普

AJAX请求遭遇未登录和Session失效的解决方案

使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一共分为过滤器和页面JS两个部分的设置,先看过滤器的修改: import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterCon

ajax请求session失效重定向到登录页面

在ajax请求的页面引入一个自定义的AjaxRedirect.js的文件 AjaxRedirect.js的代码如下: $(function(){ $.ajaxSetup({ type: 'POST', complete: function(xhr,status) { var sessionStatus = xhr.getResponseHeader('sessionstatus'); if(sessionStatus == 'timeout') { var top = getTopWinow()

前端开发:mock.js的简单应用(生成随机数据,拦截 Ajax 请求)

摘要 在前端开发过程中,后端接口还没有完全开发完成时,前端开发人员就需要学会自己模拟后端接口数据,更快更好的完成开发任务.模拟后端接口数据的js库有很多,今天就简单就简单的分享下mock.js在前端开发的应用(嘿嘿,毕竟这个mock应用的开发人员较多). 内容 1.Mock的安装 根据官方文档安装mock,运行安装命令安装即可. npm install mockjs 2.Mock的简单介绍 2.1.mock数据模板定义 根据官方文档示例介绍,输出一个随机数的‘*’字符串来展示mock的数据模板,

ajax访问遇到Session失效问题

最近由于一个项目,模块切换为ajax请求数据,当Session失效后,ajax请 求后没有返回值,只有响应的html:<html><script type='text/javascript'>window.open('http://192.168.0.118:8080/welcomeAction/loginUI.do','_top');</script></html> 现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请

AJAX跨域请求数据

由于浏览器的同源策略 ajax请求不可以接收到请求响应回来的数据 请求数据需要调用浏览器的内置构造函数 XMLHttpRequest() 进行 实例对象 var xhr = new XMLHttpRequest(); 注意点 在IE8之前支持的 ActiveXobject("Microsoft.XMLHTTP");  记住要进行兼容处理哦  在这里我就不写了 通过该对象进行获取 获取数据的四种状态  xhr.readyState 该属性保存着请求数据的几种状态 1.xhr.open(请