`
TxjDsk
  • 浏览: 93791 次
  • 性别: Icon_minigender_1
  • 来自: wuhua
社区版块
存档分类
最新评论

jquery的ajax的dataFilter参数的使用

 
阅读更多

       dataFilter给Ajax返回的原始数据的进行预处理的函数。它的调用在success之前。提供data和type两个参数:data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。

function (data, type) {
    // 对Ajax返回的原始数据进行预处理
    return data  // 返回处理后的数据,处理后的数据将被其它函数使用(如success)
}

 

       当用户的session失效时可使用ajax请求时,可以使用这个函数进行判断是否要重新跳转到登录界面(系统的过滤器发现用户ajax的请求,但用户没有登录或session失效时返回字符串”timeOut"):

 $.ajaxSetup({
         dataFilter : function(data, type){
             console.log("data:"+data);
            if(data == "timeOut" || data == "[object XMLDocument]"){//ajax请求,发现session过期,重新刷新页面,跳转到登录页面
                window.location.reload();
            }else{
                return data;
            }
        }
    })

 

过滤器:
public class AuthFilter implements Filter{
    private String excludeUrl;           
    private List<String> excludeUrlList; 
   
    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        Object object = req.getSession().getAttribute(Constant.SESSION_USER);
        String uri = req.getServletPath().trim();
        boolean contain = false;
        if(null == object){
            for(String str : excludeUrlList){
                str = str.trim();
                if(str.equals(uri)){
                    contain = true;
                    break;
                }
            }
        }
       
        if(null == object && !contain){
            if(req.getHeader("x-requested-with")!= null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){//ajax请求  
                PrintWriter printWriter = response.getWriter();  
                printWriter.print("timeOut");  
                printWriter.flush();  
                printWriter.close();  
            }else{
                ((HttpServletResponse)response).sendRedirect(req.getContextPath()+"/page/common/forwardLogin.jsp") ;
            }
        }else{
            chain.doFilter(request, response);
        }
    }
   
    public void init(FilterConfig config) throws ServletException {
        this.excludeUrl = config.getInitParameter("excludeUrl");
        this.excludeUrlList = Arrays.asList(excludeUrl.split(","));
    }

    public void destroy() {
    }
   
    public String getExcludeUrl() {
        return excludeUrl;
    }

    public void setExcludeUrl(String excludeUrl) {
        this.excludeUrl = excludeUrl;
    }
}

 

分享到:
评论
1 楼 泡沫__opt 2017-05-31  
靠谱!靠谱!靠谱!靠谱!

相关推荐

    使用jQuery处理AJAX请求的基础学习教程

    使用jQuery处理AJAX请求,不仅可以简化代码,还能提高开发效率。本教程将从基础知识开始,逐步引导读者深入理解使用jQuery处理AJAX请求的方法和技巧。 首先,我们需要了解jQuery中处理AJAX请求的基本语法。jQuery...

    ajax参数详解

    dataFilter参数允许对Ajax返回的原始数据进行预处理。它提供了data和type两个参数,data是原始数据,type是请求时指定的dataType。处理函数的返回值将被jQuery进一步处理。 AJAX技术是一种丰富网页应用的交互性能,...

    ajax通过jquery传递的原理

    jQuery 还提供了 `$.ajaxSetup()` 函数,用于设置全局的 AJAX 选项,这样可以避免在每个请求中重复设置相同的参数。 对于 JSONP(JSON with Padding),它是一种跨域数据交互协议,通过动态插入 `&lt;script&gt;` 标签来...

    jQuery中异步交互技术详细指南

    本文将详细介绍`jQuery.ajax()`的使用方法及其相关参数,并通过实际示例帮助读者更好地理解和掌握这项技术。 #### `jQuery.ajax()`概述 `jQuery.ajax()`是jQuery中最强大的AJAX函数,它允许开发者通过HTTP请求加载...

    jquery-ajax

    在使用jQuery发起AJAX请求时,通常会通过`$.ajax()`方法传递一系列配置选项。以下是一些常用且关键的配置项: 1. **url**: 这个选项用于指定请求的目标URL。它接受一个字符串类型的值,如果没有提供,默认情况下将...

    jQuery使用ajax跨域请求获取数据

    jQuery提供了使用ajax进行跨域请求的功能,以实现与不同源的服务器进行数据交互。 首先,要启用jQuery的跨域支持,我们需要设置`jQuery.support.cors`为`true`,这允许jQuery执行跨域请求。在示例代码中,有这样一...

    jQuery 1.3 API 参考文档中文版 html

    + jQuery.ajax中增加dataFilter参数 2008-06-21 04:16:54 +0800 * pretend的第一个示例结果错误 2008-06-19 19:52:29 +0800 * insertBefore 和 insertAfter 示例说明翻译错误。 + 事件&gt;load 增加注释 2008-06-18 ...

    jQuery1.3API参考文档中文版

    + jQuery.ajax中增加dataFilter参数 2008-06-21 04:16:54 +0800 * pretend的第一个示例结果错误 2008-06-19 19:52:29 +0800 * insertBefore 和 insertAfter 示例说明翻译错误。 + 事件&gt;load 增加注释 2008-06-18 ...

    JQuery中$.ajax()方法参数详解及应用

    13. dataFilter:这个参数是一个Function类型,用于处理从服务器返回的原始数据。它接收两个参数:数据和dataType,并返回处理后的数据。 在实际开发中,根据具体需求选择合适的参数,并且合理配置这些参数是实现...

    jQuery使用ajax跨域获取数据的简单实例

    在JavaScript的世界里,jQuery库是广泛使用的工具,它简化了DOM操作、事件处理以及Ajax交互。在本例中,我们关注的是如何使用jQuery的`ajax`方法实现跨域数据获取,这是一种非常常见的需求,特别是在前后端分离的...

    ajax提交表单

    在使用jQuery进行AJAX表单提交时,最常用的方法是`$.ajax()`。下面将详细介绍该方法的使用及其选项参数: 1. **$.ajax()方法** ```javascript $.ajax([options]) ``` `$.ajax()`方法用于发送AJAX请求。它接受...

    Ajax常用方法

    通过本文档的学习,你已经掌握了 jQuery 中 `$.ajax()` 方法的基本使用方法以及其主要参数的功能。`$.ajax()` 方法的强大之处在于它的灵活性,可以根据实际需求调整各种配置选项。在实际项目中合理利用这些配置,...

    jQueryapi的pdf格式版

    - 新增功能与参数(如`dataFilter`、`jsonp`、`password`、`scriptCharset`等)。 - 错误命名更正及代码注释改进。 - 提升运行速度,如删除远程调用JS。 #### 三、API新增与调整 - **核心功能增强**: - 数据...

    详解JavaScript原生封装ajax请求和Jquery中的ajax请求

    jQuery的$.ajax()方法还支持许多其他选项,如缓存控制(cache)、数据转换(dataFilter)、全局事件处理(beforeSend、complete等),以及异步处理的async选项。4、$.getJSON()与$.get()、$.post()jQuery还提供了...

    jquery帮助文档

    + jQuery.ajax中增加dataFilter参数 2008-06-21 04:16:54 +0800 * pretend的第一个示例结果错误 2008-06-19 19:52:29 +0800 * insertBefore 和 insertAfter 示例说明翻译错误。 + 事件&gt;load 增加注释 2008-06-18 ...

    用jquery制作菜单树

    jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和动画效果。而`jQuery-zTree`则是一个基于jQuery的插件,专门用于构建可扩展、功能丰富的树形控件。在这个教程中,我们将深入探讨如何利用jQuery-...

    $.ajax()方法详解

    $.ajax()是jQuery库提供的一种快速使用AJAX(异步JavaScript和XML)技术发送HTTP请求的方法。通过$.ajax(),开发者可以实现与服务器的异步数据交换,无需重新加载整个页面就能更新网页的部分内容。这种方法特别适用...

Global site tag (gtag.js) - Google Analytics