`
TxjDsk
  • 浏览: 91672 次
  • 性别: 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 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 ...

    dataFilter:Java数据过滤器

    DataFilter&lt; Person&gt; personFilter = DataFilter . builder( Person . class) . build(); // add one or more persons personFilter . add(person); personFilter . addAll(personCollection); // a dimension is a ...

    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 ...

    Python库 | datafilter-0.4.1-py2.py3-none-any.whl

    python库。 资源全名:datafilter-0.4.1-py2.py3-none-any.whl

    FakeXposed数据滤镜datafilter-release-1.5-arm.apk

    FakeXposed:隐藏xposed,根目录,文件重定向等,作者将名字变更数据滤镜datafilter,最新的版本datafilter-release-1.5-arm.apk

    DataTables自行封装请求参数和返回数据的零耦合服务端分页示例(PHP&JAVA)

    使用DataTable默认的ajax交互功能,对传给后台和从后台获取的数据都有命名格式要求,这样一来耦合度较高,不利于后期扩展,不能直接适用于需要跟多种不同前端或其他业务交互的项目。本例子主要展示了自行封装请求...

    dataFilter.js:使用数据属性过滤和排序元素

    dataFilter.js 使用数据属性过滤和排序元素 例子 dataFilter.init({ filterclass: 'filter', dataParent: 'dataParent', sortAttr: 'data-sort' }); 文献资料 dataFilter.init(options) 选项 filterClass用于...

    yum-plugin-filter-data-1.1.31-54.el7_8.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    node-datafilter:对象集合的简单过滤

    npm install datafilter 要运行测试套件,请从 datafilter 目录运行以下命令: npm test API参考 默认运算符 大于(或 &gt;):检查字段是否大于值 大于或等于(或 &gt;=):检查该字段是否大于或等于该值 小于(或 &lt...

    dataFilter:雅虎市场数据的乱码过滤器

    使用超过50k种股票的数据库(所有具有至少一定长度数据的合理可用的历史工具,可能已从150k种以上股票文件的库中筛选出50kb +文件)。 #该过程将1过滤功能除以1,直到在数据中未发现奇怪的乱码(太可预测)边缘...

    JQuery写动态树示例代码

    代码如下: // 业务类型树 var settingOther = { edit: { enable: false }, // 异步加载树 ... dataFilter: filter }, // 简单数据格式 data: { simpleData: { enable: true } }, // 回调函数 callback: { beforeClick:

    dataFilter:数组、JSON、CSV 的分层数据过滤器

    数据过滤器此类允许将数据过滤器构建为回调,然后相互“堆叠”以创建过滤数据集,这些数据集可以从简单的过滤器列表中重新创建。 该列表可以是一个简单的数组,也可以是一个便于存储的 json 字符串。...

    DataEditR:用于查看,输入过滤和编辑数据的交互式R程序包

    数据编辑器 在R中手动输入和编辑数据可能很繁琐,尤其是在您的编码经验...DataEditR附带了一系列闪亮的模块,即dataInput , dataSelect , dataFilter , dataEdit和dataOutput ,这些模块被包装到名为data_edit()的单

Global site tag (gtag.js) - Google Analytics