第一篇博文,mark一下zhq[0]。

问题描述:用户页面,当session过期或都session注销后,普通页面后端都会有过滤器,session过期Redirect到登录页面,但是ajax请求后端只会返回登录页面源码并不跳转。

网上有很多方法1.返回的字符串附加登录状态2.修改http头信息;3.修改jquery源文件判断;综合比较还是以下方法最方便更易维护。个中缺点大家应该都明了就不赘述。

解决方案:

jQuery(function($){
// 备份jquery的ajax方法
var _ajax=$.ajax;
// 重写ajax方法,
$.ajax=function(opt){
var _success = opt && opt.success || function(a, b){};
var _error = opt && opt.error || function(a, b){};
var _opt = $.extend(opt, {
success:function(data, textStatus){
// 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要判断(登录页面一般是源码,所以这里只判断是否有html标签)
if(data.indexOf('html') != -) {
window.location.href= "http://www.baidu.com";
return;
}
_success(data, textStatus);
},
error:function(data, textStatus){
if(data.responseText.indexOf('html') != -){
window.location.href= "http://www.baidu.com";
return;
}
_error(data, textStatus);
}
});
return _ajax(_opt);
};
});
});

我遇到的是分页ajax,请求getList.html页面,session过期后端会把请求跳到login.html; 这里其实ajax执行的是error,所以只需给error一个前置处理就可以了。

ajax前置处理实现异步请求session过期时跳转登录页面的更多相关文章

  1. 重写ajax方法实现异步请求session过期时跳转登录页面(转)

    一般我们会在过滤器里判断登录状态,如果没登录就跳转登录页面,过滤器java核心代码如下: UserItem loginUser = (UserItem)request.getSession().get ...

  2. 重写ajax方法实现异步请求session过期时跳转登录页面

    jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _suc ...

  3. 重写ajax方法实现请求session过期时跳转登录页面

    jQuery(function($){ var _ajax=$.ajax; // 备份jquery的ajax方法 $.ajax=function(opt){ var _success = opt &a ...

  4. 详解springmvc控制登录用户session失效后跳转登录页面

    springmvc控制登录用户session失效后跳转登录页面,废话不多少了,具体如下: 第一步,配置 web.xml <session-config> <session-timeo ...

  5. session过期时ajax请求刷新浏览器

    ajax前置处理实现异步请求session过期时跳转登录页面 function checkLogin(json) { if (typeof(json) === 'string' && ...

  6. session过期,拦截ajax请求并跳转登录页面

    1.方法一 :1.1使用filter 和ajaxsetup 对ajax进行拦截并跳转登录页面 public void doFilter(ServletRequest request, ServletR ...

  7. ajax的使用:(ajaxReturn[ajax的返回方法]),(eval返回字符串);分页;第三方类(page.class.php)如何载入;自动加载函数库(functions);session如何防止跳过登录访问(构造函数说明)

    一.ajax例子:ajaxReturn("ok","eval")->thinkphp中ajax的返回值的方法,返回参数为ok,返回类型为eval(字符串) ...

  8. 登录超时,给出提示跳到登录页面(ajax、导入、导出)

    一.一般页面登录超时验证,可以用过滤器filter,如下: package com.lg.filter; import java.io.IOException; import javax.servle ...

  9. 处理jquery的ajax请求session过期跳转到登录页面

    首先需要在拦截器中判断是否是ajax请求,如果是 if(isAjaxRequest(request)){//ajax请求 response.setHeader("sessionstatus& ...

随机推荐

  1. SSM到Spring Boot-从零开发校园商铺平台

    第1章 开发准备 本章包含课程介绍,同时讲解开发网站所需要准备的事情,并且带领大家从零开始搭建一个Maven Web. 1-1 课程导学 1-2 开发准备 第2章 项目设计和框架搭建 本章主要先带领大 ...

  2. java 反序列化 漏洞

        java在反序列化的时候会默认调用被重写的readObject(ObjectInputStream )方法. 在远程服务端一个需要反序列化的接口中,比如一个web服务,他那个接口调用链中有反序 ...

  3. spring cloud feign 调用服务注意问题

    服务端 rest api @RequestMapping(value = "/phone") public ResponsePhone getPhone(@RequestParam ...

  4. java中函数传值与引用问题

    从C++转java,在使用函数传对象时,碰到一点问题,今天特意验证了一下: public class App { public static void doubleTest(double d) { d ...

  5. Visual Studio 2013 Ultimate & IIS Express 8.0 错误 [iisexpress.exe”已退出,返回值为 -1073741816 (0xc0000008)] 解决方法

    1. 开发环境 Visual Studio 2013 Ultimate IIS 8.0 Express 2. 错误信息 错误提示:iisexpress.exe”已退出,返回值为 -1073741816 ...

  6. zlib编译方法

    点击这里下载zlib1.2.8源码 http://www.zlib.net/fossils/ ##编译方法一## - 解压源码文件到指定目录,例如 x:\zlib - 打开VS2015的Develop ...

  7. Centos 查看端口占用情况

    netstat -ntlp 把相应PID kill掉即可

  8. linux基础之Vim

  9. 新浪云连接数据库php

    一般数据库连接$con = mysql_connect("localhost", "root", ""); 而新浪云共享数据库 <?p ...

  10. Selenium入门练习(二)

    自动登录博客园并且退出登录 package TestNG; import org.testng.annotations.Test;import org.testng.annotations.Befor ...