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

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.meta.code == 返回的需要登录的状态码) {
                            alert(‘请先登录!‘);
                            window.location.href = "login.html";
                            return;
                        }
                        _success(data, textStatus);
                  },
                  error:function(data, textStatus){
                    if(data.meta.code == 返回的需要登录的状态码){
                      alert(‘请先登录!‘);
                      window.location.href = "login.html";
                      return;
                    }
                    _error(data, textStatus);
                  }
                });
                return _ajax(_opt);
            };
        });

  

时间: 2024-07-29 10:54:33

重写ajax方法实现异步请求session过期时跳转登录页面的相关文章

ExtJS以及JQuery异步请求Session过期解决方案

最近在开发中遇到这样的问题,当Session过期后,通过拦截器判断过期并通过response.sendRedirect(request.getServletContext()+"/login.jsp")重定位到登录界面,但是因为大部分前后台的交互是通过Ajax进行的异步请求,这种做法只能是该请求没有任何的实际相应,但是不能重定位到登录界面. 然后就想能不能对异步请求,在其返回的时候进行统一的前端拦截,判断如果responseText符合{timeout: true, redirectU

使用JQuery 的$.ajax 方法进行异步请求,导致页面闪烁

情景 目前有个需求是在文本框填入内容,自动触发keyup事件,下拉列表会自动过滤相应的选项,但是使用了$,ajax后发现,每次触发事件时,都导致整个网页闪烁,触发了全局ajax事件 代码片段 $.ajax({ type: "POST", url: root + "/xxx, data: requestData, dataType: "json", success: function(data){ // 清空列表 $("#formOpinion #

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

ajax前置处理实现异步请求session过期时跳转登录页面 function checkLogin(json) { if (typeof(json) === 'string' && ~json.indexOf('<!DOCTYPE html>')) { window.location.href = $('base').attr('href') + 'auth/login' } }

重写$.ajax方法

1 /*重写Jquery中的ajax 封装壳*/ 2 $(function () { 3 (function ($) { 4 //首先备份下jquery的ajax方法 5 var _ajax = $.ajax; 6 7 //重写jquery的ajax方法 8 $.ajax = function (opt) { 9 //备份opt中error和success方法 10 var fn = { 11 beforeSend: function (XHR) { }, 12 error: function

jQuery框架+DWR框架实现的Java Web中的Ajax效果(异步请求,局部刷新)

一 简介和实现效果 这里用一个小例子来简单举例说明,做一个搜索引擎搜索提示效果,通过不断输入字符,然后在下方给出搜索提示.效果图如下: 通过上图可以看到,当输入一个"a"时,提示了很多内容,然后继续输入一个"e"后,提示的范围明显就变小了. 注:在文末我会给出完整源代码的下载链接,以供大家参考 二 具体实现 1 在eclipse for java ee中创建一个Java Web工程,然后导入相应的jar包,特别说明的是:这里要导入一个额外的dwr.jar.也就是说,

使用AJAX技术发送异步请求,HTTP服务端推送

使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于XMLHttpRequest让我们在不重载页面的情况下和服务器进行数据交换. 加上JavaScript和DOM(Document Object Model,文档对象模型),我们就可以在接收到响应数据后局部更新页面.XML指的是数据的交互模式,可以是纯文本(Plain Text).HTML或JSON.

Ajax与ashx异步请求的简单案例

Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=

webix+springmvc session超时跳转登录页面

2016-10-30 13:11:56 引言 最近做项目,发现ajax请求不能在服务器中直接重定向到登录页面.查了些资料发现jquery的ajax请求有人给出了方法.但是webix的ajax请求和jquery的有些区别.这里模仿jquery的处理方式实现webix的ajax请求session超时跳转. 具体的做法: 1.查看webix.js源码发现webix.ajax只有请求前的监听函数 "onBeforeAjax", 要做到获取返回状态跳转登录页面必须要有个返回的监听函数,但是源码没

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

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